# frozen_string_literal: true

# 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.

# Auto-generated by gapic-generator-ruby. DO NOT EDIT!


module Google
  module Ads
    module GoogleAds
      module V6
        module Services
          module GoogleAdsService
            # Path helper methods for the GoogleAdsService API.
            module Paths
              ##
              # Create a fully-qualified AccountBudget resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/accountBudgets/{account_budget_id}`
              #
              # @param customer_id [String]
              # @param account_budget_id [String]
              #
              # @return [::String]
              def account_budget_path customer_id:, account_budget_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/accountBudgets/#{account_budget_id}"
              end

              ##
              # Create a fully-qualified AccountBudgetProposal resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
              #
              # @param customer_id [String]
              # @param account_budget_proposal_id [String]
              #
              # @return [::String]
              def account_budget_proposal_path customer_id:, account_budget_proposal_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/accountBudgetProposals/#{account_budget_proposal_id}"
              end

              ##
              # Create a fully-qualified AccountLink resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/accountLinks/{account_link_id}`
              #
              # @param customer_id [String]
              # @param account_link_id [String]
              #
              # @return [::String]
              def account_link_path customer_id:, account_link_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/accountLinks/#{account_link_id}"
              end

              ##
              # Create a fully-qualified Ad resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/ads/{ad_id}`
              #
              # @param customer_id [String]
              # @param ad_id [String]
              #
              # @return [::String]
              def ad_path customer_id:, ad_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/ads/#{ad_id}"
              end

              ##
              # Create a fully-qualified AdGroup resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroups/{ad_group_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              #
              # @return [::String]
              def ad_group_path customer_id:, ad_group_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/adGroups/#{ad_group_id}"
              end

              ##
              # Create a fully-qualified AdGroupAd resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param ad_id [String]
              #
              # @return [::String]
              def ad_group_ad_path customer_id:, ad_group_id:, ad_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupAds/#{ad_group_id}~#{ad_id}"
              end

              ##
              # Create a fully-qualified AdGroupAdAssetView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupAdAssetViews/{ad_group_id}~{ad_id}~{asset_id}~{field_type}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param ad_id [String]
              # @param asset_id [String]
              # @param field_type [String]
              #
              # @return [::String]
              def ad_group_ad_asset_view_path customer_id:, ad_group_id:, ad_id:, asset_id:, field_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                raise ::ArgumentError, "ad_id cannot contain /" if ad_id.to_s.include? "/"
                raise ::ArgumentError, "asset_id cannot contain /" if asset_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupAdAssetViews/#{ad_group_id}~#{ad_id}~#{asset_id}~#{field_type}"
              end

              ##
              # Create a fully-qualified AdGroupAdLabel resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param ad_id [String]
              # @param label_id [String]
              #
              # @return [::String]
              def ad_group_ad_label_path customer_id:, ad_group_id:, ad_id:, label_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                raise ::ArgumentError, "ad_id cannot contain /" if ad_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupAdLabels/#{ad_group_id}~#{ad_id}~#{label_id}"
              end

              ##
              # Create a fully-qualified AdGroupAudienceView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def ad_group_audience_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupAudienceViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified AdGroupBidModifier resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def ad_group_bid_modifier_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupBidModifiers/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified AdGroupCriterion resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def ad_group_criterion_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupCriteria/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified AdGroupCriterionLabel resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              # @param label_id [String]
              #
              # @return [::String]
              def ad_group_criterion_label_path customer_id:, ad_group_id:, criterion_id:, label_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                raise ::ArgumentError, "criterion_id cannot contain /" if criterion_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupCriterionLabels/#{ad_group_id}~#{criterion_id}~#{label_id}"
              end

              ##
              # Create a fully-qualified AdGroupCriterionSimulation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              # @param type [String]
              # @param modification_method [String]
              # @param start_date [String]
              # @param end_date [String]
              #
              # @return [::String]
              def ad_group_criterion_simulation_path customer_id:, ad_group_id:, criterion_id:, type:, modification_method:, start_date:, end_date:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                raise ::ArgumentError, "criterion_id cannot contain /" if criterion_id.to_s.include? "/"
                raise ::ArgumentError, "type cannot contain /" if type.to_s.include? "/"
                raise ::ArgumentError, "modification_method cannot contain /" if modification_method.to_s.include? "/"
                raise ::ArgumentError, "start_date cannot contain /" if start_date.to_s.include? "/"

                "customers/#{customer_id}/adGroupCriterionSimulations/#{ad_group_id}~#{criterion_id}~#{type}~#{modification_method}~#{start_date}~#{end_date}"
              end

              ##
              # Create a fully-qualified AdGroupExtensionSetting resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_type}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param extension_type [String]
              #
              # @return [::String]
              def ad_group_extension_setting_path customer_id:, ad_group_id:, extension_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupExtensionSettings/#{ad_group_id}~#{extension_type}"
              end

              ##
              # Create a fully-qualified AdGroupFeed resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupFeeds/{ad_group_id}~{feed_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param feed_id [String]
              #
              # @return [::String]
              def ad_group_feed_path customer_id:, ad_group_id:, feed_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupFeeds/#{ad_group_id}~#{feed_id}"
              end

              ##
              # Create a fully-qualified AdGroupLabel resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param label_id [String]
              #
              # @return [::String]
              def ad_group_label_path customer_id:, ad_group_id:, label_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/adGroupLabels/#{ad_group_id}~#{label_id}"
              end

              ##
              # Create a fully-qualified AdGroupSimulation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param type [String]
              # @param modification_method [String]
              # @param start_date [String]
              # @param end_date [String]
              #
              # @return [::String]
              def ad_group_simulation_path customer_id:, ad_group_id:, type:, modification_method:, start_date:, end_date:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                raise ::ArgumentError, "type cannot contain /" if type.to_s.include? "/"
                raise ::ArgumentError, "modification_method cannot contain /" if modification_method.to_s.include? "/"
                raise ::ArgumentError, "start_date cannot contain /" if start_date.to_s.include? "/"

                "customers/#{customer_id}/adGroupSimulations/#{ad_group_id}~#{type}~#{modification_method}~#{start_date}~#{end_date}"
              end

              ##
              # Create a fully-qualified AdParameter resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              # @param parameter_index [String]
              #
              # @return [::String]
              def ad_parameter_path customer_id:, ad_group_id:, criterion_id:, parameter_index:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                raise ::ArgumentError, "criterion_id cannot contain /" if criterion_id.to_s.include? "/"

                "customers/#{customer_id}/adParameters/#{ad_group_id}~#{criterion_id}~#{parameter_index}"
              end

              ##
              # Create a fully-qualified AdScheduleView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def ad_schedule_view_path customer_id:, campaign_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/adScheduleViews/#{campaign_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified AgeRangeView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def age_range_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/ageRangeViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified Asset resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/assets/{asset_id}`
              #
              # @param customer_id [String]
              # @param asset_id [String]
              #
              # @return [::String]
              def asset_path customer_id:, asset_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/assets/#{asset_id}"
              end

              ##
              # Create a fully-qualified BatchJob resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/batchJobs/{batch_job_id}`
              #
              # @param customer_id [String]
              # @param batch_job_id [String]
              #
              # @return [::String]
              def batch_job_path customer_id:, batch_job_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/batchJobs/#{batch_job_id}"
              end

              ##
              # Create a fully-qualified BiddingStrategy resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`
              #
              # @param customer_id [String]
              # @param bidding_strategy_id [String]
              #
              # @return [::String]
              def bidding_strategy_path customer_id:, bidding_strategy_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/biddingStrategies/#{bidding_strategy_id}"
              end

              ##
              # Create a fully-qualified BillingSetup resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/billingSetups/{billing_setup_id}`
              #
              # @param customer_id [String]
              # @param billing_setup_id [String]
              #
              # @return [::String]
              def billing_setup_path customer_id:, billing_setup_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/billingSetups/#{billing_setup_id}"
              end

              ##
              # Create a fully-qualified Campaign resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaigns/{campaign_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              #
              # @return [::String]
              def campaign_path customer_id:, campaign_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/campaigns/#{campaign_id}"
              end

              ##
              # Create a fully-qualified CampaignAsset resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param asset_id [String]
              # @param field_type [String]
              #
              # @return [::String]
              def campaign_asset_path customer_id:, campaign_id:, asset_id:, field_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"
                raise ::ArgumentError, "asset_id cannot contain /" if asset_id.to_s.include? "/"

                "customers/#{customer_id}/campaignAssets/#{campaign_id}~#{asset_id}~#{field_type}"
              end

              ##
              # Create a fully-qualified CampaignAudienceView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def campaign_audience_view_path customer_id:, campaign_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignAudienceViews/#{campaign_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified CampaignBidModifier resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def campaign_bid_modifier_path customer_id:, campaign_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignBidModifiers/#{campaign_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified CampaignBudget resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`
              #
              # @param customer_id [String]
              # @param campaign_budget_id [String]
              #
              # @return [::String]
              def campaign_budget_path customer_id:, campaign_budget_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/campaignBudgets/#{campaign_budget_id}"
              end

              ##
              # Create a fully-qualified CampaignCriterion resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def campaign_criterion_path customer_id:, campaign_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignCriteria/#{campaign_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified CampaignCriterionSimulation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param criterion_id [String]
              # @param type [String]
              # @param modification_method [String]
              # @param start_date [String]
              # @param end_date [String]
              #
              # @return [::String]
              def campaign_criterion_simulation_path customer_id:, campaign_id:, criterion_id:, type:, modification_method:, start_date:, end_date:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"
                raise ::ArgumentError, "criterion_id cannot contain /" if criterion_id.to_s.include? "/"
                raise ::ArgumentError, "type cannot contain /" if type.to_s.include? "/"
                raise ::ArgumentError, "modification_method cannot contain /" if modification_method.to_s.include? "/"
                raise ::ArgumentError, "start_date cannot contain /" if start_date.to_s.include? "/"

                "customers/#{customer_id}/campaignCriterionSimulations/#{campaign_id}~#{criterion_id}~#{type}~#{modification_method}~#{start_date}~#{end_date}"
              end

              ##
              # Create a fully-qualified CampaignDraft resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`
              #
              # @param customer_id [String]
              # @param base_campaign_id [String]
              # @param draft_id [String]
              #
              # @return [::String]
              def campaign_draft_path customer_id:, base_campaign_id:, draft_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "base_campaign_id cannot contain /" if base_campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignDrafts/#{base_campaign_id}~#{draft_id}"
              end

              ##
              # Create a fully-qualified CampaignExperiment resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}`
              #
              # @param customer_id [String]
              # @param campaign_experiment_id [String]
              #
              # @return [::String]
              def campaign_experiment_path customer_id:, campaign_experiment_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/campaignExperiments/#{campaign_experiment_id}"
              end

              ##
              # Create a fully-qualified CampaignExtensionSetting resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignExtensionSettings/{campaign_id}~{extension_type}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param extension_type [String]
              #
              # @return [::String]
              def campaign_extension_setting_path customer_id:, campaign_id:, extension_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignExtensionSettings/#{campaign_id}~#{extension_type}"
              end

              ##
              # Create a fully-qualified CampaignFeed resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignFeeds/{campaign_id}~{feed_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param feed_id [String]
              #
              # @return [::String]
              def campaign_feed_path customer_id:, campaign_id:, feed_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignFeeds/#{campaign_id}~#{feed_id}"
              end

              ##
              # Create a fully-qualified CampaignLabel resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param label_id [String]
              #
              # @return [::String]
              def campaign_label_path customer_id:, campaign_id:, label_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignLabels/#{campaign_id}~#{label_id}"
              end

              ##
              # Create a fully-qualified CampaignSharedSet resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param shared_set_id [String]
              #
              # @return [::String]
              def campaign_shared_set_path customer_id:, campaign_id:, shared_set_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/campaignSharedSets/#{campaign_id}~#{shared_set_id}"
              end

              ##
              # Create a fully-qualified CarrierConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `carrierConstants/{criterion_id}`
              #
              # @param criterion_id [String]
              #
              # @return [::String]
              def carrier_constant_path criterion_id:
                "carrierConstants/#{criterion_id}"
              end

              ##
              # Create a fully-qualified ChangeEvent resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}`
              #
              # @param customer_id [String]
              # @param timestamp_micros [String]
              # @param command_index [String]
              # @param mutate_index [String]
              #
              # @return [::String]
              def change_event_path customer_id:, timestamp_micros:, command_index:, mutate_index:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "timestamp_micros cannot contain /" if timestamp_micros.to_s.include? "/"
                raise ::ArgumentError, "command_index cannot contain /" if command_index.to_s.include? "/"

                "customers/#{customer_id}/changeEvents/#{timestamp_micros}~#{command_index}~#{mutate_index}"
              end

              ##
              # Create a fully-qualified ChangeStatus resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/changeStatus/{change_status_id}`
              #
              # @param customer_id [String]
              # @param change_status_id [String]
              #
              # @return [::String]
              def change_status_path customer_id:, change_status_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/changeStatus/#{change_status_id}"
              end

              ##
              # Create a fully-qualified ClickView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/clickViews/{date}~{gclid}`
              #
              # @param customer_id [String]
              # @param date [String]
              # @param gclid [String]
              #
              # @return [::String]
              def click_view_path customer_id:, date:, gclid:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "date cannot contain /" if date.to_s.include? "/"

                "customers/#{customer_id}/clickViews/#{date}~#{gclid}"
              end

              ##
              # Create a fully-qualified CombinedAudience resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/combinedAudiences/{combined_audience_id}`
              #
              # @param customer_id [String]
              # @param combined_audience_id [String]
              #
              # @return [::String]
              def combined_audience_path customer_id:, combined_audience_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/combinedAudiences/#{combined_audience_id}"
              end

              ##
              # Create a fully-qualified ConversionAction resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/conversionActions/{conversion_action_id}`
              #
              # @param customer_id [String]
              # @param conversion_action_id [String]
              #
              # @return [::String]
              def conversion_action_path customer_id:, conversion_action_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/conversionActions/#{conversion_action_id}"
              end

              ##
              # Create a fully-qualified CurrencyConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `currencyConstants/{code}`
              #
              # @param code [String]
              #
              # @return [::String]
              def currency_constant_path code:
                "currencyConstants/#{code}"
              end

              ##
              # Create a fully-qualified CustomAudience resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customAudiences/{custom_audience_id}`
              #
              # @param customer_id [String]
              # @param custom_audience_id [String]
              #
              # @return [::String]
              def custom_audience_path customer_id:, custom_audience_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customAudiences/#{custom_audience_id}"
              end

              ##
              # Create a fully-qualified CustomInterest resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customInterests/{custom_interest_id}`
              #
              # @param customer_id [String]
              # @param custom_interest_id [String]
              #
              # @return [::String]
              def custom_interest_path customer_id:, custom_interest_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customInterests/#{custom_interest_id}"
              end

              ##
              # Create a fully-qualified Customer resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}`
              #
              # @param customer_id [String]
              #
              # @return [::String]
              def customer_path customer_id:
                "customers/#{customer_id}"
              end

              ##
              # Create a fully-qualified CustomerClient resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerClients/{client_customer_id}`
              #
              # @param customer_id [String]
              # @param client_customer_id [String]
              #
              # @return [::String]
              def customer_client_path customer_id:, client_customer_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerClients/#{client_customer_id}"
              end

              ##
              # Create a fully-qualified CustomerClientLink resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}`
              #
              # @param customer_id [String]
              # @param client_customer_id [String]
              # @param manager_link_id [String]
              #
              # @return [::String]
              def customer_client_link_path customer_id:, client_customer_id:, manager_link_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "client_customer_id cannot contain /" if client_customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerClientLinks/#{client_customer_id}~#{manager_link_id}"
              end

              ##
              # Create a fully-qualified CustomerExtensionSetting resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerExtensionSettings/{extension_type}`
              #
              # @param customer_id [String]
              # @param extension_type [String]
              #
              # @return [::String]
              def customer_extension_setting_path customer_id:, extension_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerExtensionSettings/#{extension_type}"
              end

              ##
              # Create a fully-qualified CustomerFeed resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerFeeds/{feed_id}`
              #
              # @param customer_id [String]
              # @param feed_id [String]
              #
              # @return [::String]
              def customer_feed_path customer_id:, feed_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerFeeds/#{feed_id}"
              end

              ##
              # Create a fully-qualified CustomerLabel resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerLabels/{label_id}`
              #
              # @param customer_id [String]
              # @param label_id [String]
              #
              # @return [::String]
              def customer_label_path customer_id:, label_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerLabels/#{label_id}"
              end

              ##
              # Create a fully-qualified CustomerManagerLink resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`
              #
              # @param customer_id [String]
              # @param manager_customer_id [String]
              # @param manager_link_id [String]
              #
              # @return [::String]
              def customer_manager_link_path customer_id:, manager_customer_id:, manager_link_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "manager_customer_id cannot contain /" if manager_customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerManagerLinks/#{manager_customer_id}~#{manager_link_id}"
              end

              ##
              # Create a fully-qualified CustomerNegativeCriterion resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`
              #
              # @param customer_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def customer_negative_criterion_path customer_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerNegativeCriteria/#{criterion_id}"
              end

              ##
              # Create a fully-qualified CustomerUserAccess resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerUserAccesses/{user_id}`
              #
              # @param customer_id [String]
              # @param user_id [String]
              #
              # @return [::String]
              def customer_user_access_path customer_id:, user_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerUserAccesses/#{user_id}"
              end

              ##
              # Create a fully-qualified DetailPlacementView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param base64_placement [String]
              #
              # @return [::String]
              def detail_placement_view_path customer_id:, ad_group_id:, base64_placement:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/detailPlacementViews/#{ad_group_id}~#{base64_placement}"
              end

              ##
              # Create a fully-qualified DisplayKeywordView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def display_keyword_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/displayKeywordViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified DistanceView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/distanceViews/{placeholder_chain_id}~{distance_bucket}`
              #
              # @param customer_id [String]
              # @param placeholder_chain_id [String]
              # @param distance_bucket [String]
              #
              # @return [::String]
              def distance_view_path customer_id:, placeholder_chain_id:, distance_bucket:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "placeholder_chain_id cannot contain /" if placeholder_chain_id.to_s.include? "/"

                "customers/#{customer_id}/distanceViews/#{placeholder_chain_id}~#{distance_bucket}"
              end

              ##
              # Create a fully-qualified DomainCategory resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/domainCategories/{campaign_id}~{base64_category}~{language_code}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param base64_category [String]
              # @param language_code [String]
              #
              # @return [::String]
              def domain_category_path customer_id:, campaign_id:, base64_category:, language_code:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"
                raise ::ArgumentError, "base64_category cannot contain /" if base64_category.to_s.include? "/"

                "customers/#{customer_id}/domainCategories/#{campaign_id}~#{base64_category}~#{language_code}"
              end

              ##
              # Create a fully-qualified DynamicSearchAdsSearchTermView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param search_term_fingerprint [String]
              # @param headline_fingerprint [String]
              # @param landing_page_fingerprint [String]
              # @param page_url_fingerprint [String]
              #
              # @return [::String]
              def dynamic_search_ads_search_term_view_path customer_id:, ad_group_id:, search_term_fingerprint:, headline_fingerprint:, landing_page_fingerprint:, page_url_fingerprint:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                raise ::ArgumentError, "search_term_fingerprint cannot contain /" if search_term_fingerprint.to_s.include? "/"
                raise ::ArgumentError, "headline_fingerprint cannot contain /" if headline_fingerprint.to_s.include? "/"
                raise ::ArgumentError, "landing_page_fingerprint cannot contain /" if landing_page_fingerprint.to_s.include? "/"

                "customers/#{customer_id}/dynamicSearchAdsSearchTermViews/#{ad_group_id}~#{search_term_fingerprint}~#{headline_fingerprint}~#{landing_page_fingerprint}~#{page_url_fingerprint}"
              end

              ##
              # Create a fully-qualified ExpandedLandingPageView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}`
              #
              # @param customer_id [String]
              # @param expanded_final_url_fingerprint [String]
              #
              # @return [::String]
              def expanded_landing_page_view_path customer_id:, expanded_final_url_fingerprint:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/expandedLandingPageViews/#{expanded_final_url_fingerprint}"
              end

              ##
              # Create a fully-qualified ExtensionFeedItem resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/extensionFeedItems/{feed_item_id}`
              #
              # @param customer_id [String]
              # @param feed_item_id [String]
              #
              # @return [::String]
              def extension_feed_item_path customer_id:, feed_item_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/extensionFeedItems/#{feed_item_id}"
              end

              ##
              # Create a fully-qualified Feed resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/feeds/{feed_id}`
              #
              # @param customer_id [String]
              # @param feed_id [String]
              #
              # @return [::String]
              def feed_path customer_id:, feed_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/feeds/#{feed_id}"
              end

              ##
              # Create a fully-qualified FeedItem resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}`
              #
              # @param customer_id [String]
              # @param feed_id [String]
              # @param feed_item_id [String]
              #
              # @return [::String]
              def feed_item_path customer_id:, feed_id:, feed_item_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "feed_id cannot contain /" if feed_id.to_s.include? "/"

                "customers/#{customer_id}/feedItems/#{feed_id}~#{feed_item_id}"
              end

              ##
              # Create a fully-qualified FeedItemSet resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/feedItemSets/{feed_id}~{feed_item_set_id}`
              #
              # @param customer_id [String]
              # @param feed_id [String]
              # @param feed_item_set_id [String]
              #
              # @return [::String]
              def feed_item_set_path customer_id:, feed_id:, feed_item_set_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "feed_id cannot contain /" if feed_id.to_s.include? "/"

                "customers/#{customer_id}/feedItemSets/#{feed_id}~#{feed_item_set_id}"
              end

              ##
              # Create a fully-qualified FeedItemSetLink resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/feedItemSetLinks/{feed_id}~{feed_item_set_id}~{feed_item_id}`
              #
              # @param customer_id [String]
              # @param feed_id [String]
              # @param feed_item_set_id [String]
              # @param feed_item_id [String]
              #
              # @return [::String]
              def feed_item_set_link_path customer_id:, feed_id:, feed_item_set_id:, feed_item_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "feed_id cannot contain /" if feed_id.to_s.include? "/"
                raise ::ArgumentError, "feed_item_set_id cannot contain /" if feed_item_set_id.to_s.include? "/"

                "customers/#{customer_id}/feedItemSetLinks/#{feed_id}~#{feed_item_set_id}~#{feed_item_id}"
              end

              ##
              # Create a fully-qualified FeedItemTarget resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}`
              #
              # @param customer_id [String]
              # @param feed_id [String]
              # @param feed_item_id [String]
              # @param feed_item_target_type [String]
              # @param feed_item_target_id [String]
              #
              # @return [::String]
              def feed_item_target_path customer_id:, feed_id:, feed_item_id:, feed_item_target_type:, feed_item_target_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "feed_id cannot contain /" if feed_id.to_s.include? "/"
                raise ::ArgumentError, "feed_item_id cannot contain /" if feed_item_id.to_s.include? "/"
                raise ::ArgumentError, "feed_item_target_type cannot contain /" if feed_item_target_type.to_s.include? "/"

                "customers/#{customer_id}/feedItemTargets/#{feed_id}~#{feed_item_id}~#{feed_item_target_type}~#{feed_item_target_id}"
              end

              ##
              # Create a fully-qualified FeedMapping resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}`
              #
              # @param customer_id [String]
              # @param feed_id [String]
              # @param feed_mapping_id [String]
              #
              # @return [::String]
              def feed_mapping_path customer_id:, feed_id:, feed_mapping_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "feed_id cannot contain /" if feed_id.to_s.include? "/"

                "customers/#{customer_id}/feedMappings/#{feed_id}~#{feed_mapping_id}"
              end

              ##
              # Create a fully-qualified FeedPlaceholderView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/feedPlaceholderViews/{placeholder_type}`
              #
              # @param customer_id [String]
              # @param placeholder_type [String]
              #
              # @return [::String]
              def feed_placeholder_view_path customer_id:, placeholder_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/feedPlaceholderViews/#{placeholder_type}"
              end

              ##
              # Create a fully-qualified GenderView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def gender_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/genderViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified GeoTargetConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `geoTargetConstants/{criterion_id}`
              #
              # @param criterion_id [String]
              #
              # @return [::String]
              def geo_target_constant_path criterion_id:
                "geoTargetConstants/#{criterion_id}"
              end

              ##
              # Create a fully-qualified GeographicView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}`
              #
              # @param customer_id [String]
              # @param country_criterion_id [String]
              # @param location_type [String]
              #
              # @return [::String]
              def geographic_view_path customer_id:, country_criterion_id:, location_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "country_criterion_id cannot contain /" if country_criterion_id.to_s.include? "/"

                "customers/#{customer_id}/geographicViews/#{country_criterion_id}~#{location_type}"
              end

              ##
              # Create a fully-qualified GroupPlacementView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param base64_placement [String]
              #
              # @return [::String]
              def group_placement_view_path customer_id:, ad_group_id:, base64_placement:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/groupPlacementViews/#{ad_group_id}~#{base64_placement}"
              end

              ##
              # Create a fully-qualified HotelGroupView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def hotel_group_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/hotelGroupViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified HotelPerformanceView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/hotelPerformanceView`
              #
              # @param customer_id [String]
              #
              # @return [::String]
              def hotel_performance_view_path customer_id:
                "customers/#{customer_id}/hotelPerformanceView"
              end

              ##
              # Create a fully-qualified IncomeRangeView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def income_range_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/incomeRangeViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified KeywordPlan resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/keywordPlans/{keyword_plan_id}`
              #
              # @param customer_id [String]
              # @param keyword_plan_id [String]
              #
              # @return [::String]
              def keyword_plan_path customer_id:, keyword_plan_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/keywordPlans/#{keyword_plan_id}"
              end

              ##
              # Create a fully-qualified KeywordPlanAdGroup resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}`
              #
              # @param customer_id [String]
              # @param keyword_plan_ad_group_id [String]
              #
              # @return [::String]
              def keyword_plan_ad_group_path customer_id:, keyword_plan_ad_group_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/keywordPlanAdGroups/#{keyword_plan_ad_group_id}"
              end

              ##
              # Create a fully-qualified KeywordPlanAdGroupKeyword resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}`
              #
              # @param customer_id [String]
              # @param keyword_plan_ad_group_keyword_id [String]
              #
              # @return [::String]
              def keyword_plan_ad_group_keyword_path customer_id:, keyword_plan_ad_group_keyword_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/keywordPlanAdGroupKeywords/#{keyword_plan_ad_group_keyword_id}"
              end

              ##
              # Create a fully-qualified KeywordPlanCampaign resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/keywordPlanCampaigns/{keyword_plan_campaign_id}`
              #
              # @param customer_id [String]
              # @param keyword_plan_campaign_id [String]
              #
              # @return [::String]
              def keyword_plan_campaign_path customer_id:, keyword_plan_campaign_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/keywordPlanCampaigns/#{keyword_plan_campaign_id}"
              end

              ##
              # Create a fully-qualified KeywordPlanCampaignKeyword resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/keywordPlanCampaignKeywords/{keyword_plan_campaign_keyword_id}`
              #
              # @param customer_id [String]
              # @param keyword_plan_campaign_keyword_id [String]
              #
              # @return [::String]
              def keyword_plan_campaign_keyword_path customer_id:, keyword_plan_campaign_keyword_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/keywordPlanCampaignKeywords/#{keyword_plan_campaign_keyword_id}"
              end

              ##
              # Create a fully-qualified KeywordView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def keyword_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/keywordViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified Label resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/labels/{label_id}`
              #
              # @param customer_id [String]
              # @param label_id [String]
              #
              # @return [::String]
              def label_path customer_id:, label_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/labels/#{label_id}"
              end

              ##
              # Create a fully-qualified LandingPageView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}`
              #
              # @param customer_id [String]
              # @param unexpanded_final_url_fingerprint [String]
              #
              # @return [::String]
              def landing_page_view_path customer_id:, unexpanded_final_url_fingerprint:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/landingPageViews/#{unexpanded_final_url_fingerprint}"
              end

              ##
              # Create a fully-qualified LanguageConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `languageConstants/{criterion_id}`
              #
              # @param criterion_id [String]
              #
              # @return [::String]
              def language_constant_path criterion_id:
                "languageConstants/#{criterion_id}"
              end

              ##
              # Create a fully-qualified LocationView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def location_view_path customer_id:, campaign_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"

                "customers/#{customer_id}/locationViews/#{campaign_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified ManagedPlacementView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def managed_placement_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/managedPlacementViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified MediaFile resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/mediaFiles/{media_file_id}`
              #
              # @param customer_id [String]
              # @param media_file_id [String]
              #
              # @return [::String]
              def media_file_path customer_id:, media_file_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/mediaFiles/#{media_file_id}"
              end

              ##
              # Create a fully-qualified MobileAppCategoryConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `mobileAppCategoryConstants/{mobile_app_category_id}`
              #
              # @param mobile_app_category_id [String]
              #
              # @return [::String]
              def mobile_app_category_constant_path mobile_app_category_id:
                "mobileAppCategoryConstants/#{mobile_app_category_id}"
              end

              ##
              # Create a fully-qualified MobileDeviceConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `mobileDeviceConstants/{criterion_id}`
              #
              # @param criterion_id [String]
              #
              # @return [::String]
              def mobile_device_constant_path criterion_id:
                "mobileDeviceConstants/#{criterion_id}"
              end

              ##
              # Create a fully-qualified OfflineUserDataJob resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_update_id}`
              #
              # @param customer_id [String]
              # @param offline_user_data_update_id [String]
              #
              # @return [::String]
              def offline_user_data_job_path customer_id:, offline_user_data_update_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/offlineUserDataJobs/#{offline_user_data_update_id}"
              end

              ##
              # Create a fully-qualified OperatingSystemVersionConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `operatingSystemVersionConstants/{criterion_id}`
              #
              # @param criterion_id [String]
              #
              # @return [::String]
              def operating_system_version_constant_path criterion_id:
                "operatingSystemVersionConstants/#{criterion_id}"
              end

              ##
              # Create a fully-qualified PaidOrganicSearchTermView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~{ad_group_id}~{base64_search_term}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param ad_group_id [String]
              # @param base64_search_term [String]
              #
              # @return [::String]
              def paid_organic_search_term_view_path customer_id:, campaign_id:, ad_group_id:, base64_search_term:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/paidOrganicSearchTermViews/#{campaign_id}~#{ad_group_id}~#{base64_search_term}"
              end

              ##
              # Create a fully-qualified ParentalStatusView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def parental_status_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/parentalStatusViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified PaymentsAccount resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/paymentsAccounts/{payments_account_id}`
              #
              # @param customer_id [String]
              # @param payments_account_id [String]
              #
              # @return [::String]
              def payments_account_path customer_id:, payments_account_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/paymentsAccounts/#{payments_account_id}"
              end

              ##
              # Create a fully-qualified ProductBiddingCategoryConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `productBiddingCategoryConstants/{country_code}~{level}~{id}`
              #
              # @param country_code [String]
              # @param level [String]
              # @param id [String]
              #
              # @return [::String]
              def product_bidding_category_constant_path country_code:, level:, id:
                raise ::ArgumentError, "country_code cannot contain /" if country_code.to_s.include? "/"
                raise ::ArgumentError, "level cannot contain /" if level.to_s.include? "/"

                "productBiddingCategoryConstants/#{country_code}~#{level}~#{id}"
              end

              ##
              # Create a fully-qualified ProductGroupView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/productGroupViews/{adgroup_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param adgroup_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def product_group_view_path customer_id:, adgroup_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "adgroup_id cannot contain /" if adgroup_id.to_s.include? "/"

                "customers/#{customer_id}/productGroupViews/#{adgroup_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified Recommendation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/recommendations/{recommendation_id}`
              #
              # @param customer_id [String]
              # @param recommendation_id [String]
              #
              # @return [::String]
              def recommendation_path customer_id:, recommendation_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/recommendations/#{recommendation_id}"
              end

              ##
              # Create a fully-qualified RemarketingAction resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/remarketingActions/{remarketing_action_id}`
              #
              # @param customer_id [String]
              # @param remarketing_action_id [String]
              #
              # @return [::String]
              def remarketing_action_path customer_id:, remarketing_action_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/remarketingActions/#{remarketing_action_id}"
              end

              ##
              # Create a fully-qualified SearchTermView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{query}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param ad_group_id [String]
              # @param query [String]
              #
              # @return [::String]
              def search_term_view_path customer_id:, campaign_id:, ad_group_id:, query:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "campaign_id cannot contain /" if campaign_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/searchTermViews/#{campaign_id}~#{ad_group_id}~#{query}"
              end

              ##
              # Create a fully-qualified SharedCriterion resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param shared_set_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def shared_criterion_path customer_id:, shared_set_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "shared_set_id cannot contain /" if shared_set_id.to_s.include? "/"

                "customers/#{customer_id}/sharedCriteria/#{shared_set_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified SharedSet resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/sharedSets/{shared_set_id}`
              #
              # @param customer_id [String]
              # @param shared_set_id [String]
              #
              # @return [::String]
              def shared_set_path customer_id:, shared_set_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/sharedSets/#{shared_set_id}"
              end

              ##
              # Create a fully-qualified ShoppingPerformanceView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/shoppingPerformanceView`
              #
              # @param customer_id [String]
              #
              # @return [::String]
              def shopping_performance_view_path customer_id:
                "customers/#{customer_id}/shoppingPerformanceView"
              end

              ##
              # Create a fully-qualified ThirdPartyAppAnalyticsLink resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{customer_link_id}`
              #
              # @param customer_id [String]
              # @param customer_link_id [String]
              #
              # @return [::String]
              def third_party_app_analytics_link_path customer_id:, customer_link_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/thirdPartyAppAnalyticsLinks/#{customer_link_id}"
              end

              ##
              # Create a fully-qualified TopicConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `topicConstants/{topic_id}`
              #
              # @param topic_id [String]
              #
              # @return [::String]
              def topic_constant_path topic_id:
                "topicConstants/#{topic_id}"
              end

              ##
              # Create a fully-qualified TopicView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def topic_view_path customer_id:, ad_group_id:, criterion_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"

                "customers/#{customer_id}/topicViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified UserInterest resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/userInterests/{user_interest_id}`
              #
              # @param customer_id [String]
              # @param user_interest_id [String]
              #
              # @return [::String]
              def user_interest_path customer_id:, user_interest_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/userInterests/#{user_interest_id}"
              end

              ##
              # Create a fully-qualified UserList resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/userLists/{user_list_id}`
              #
              # @param customer_id [String]
              # @param user_list_id [String]
              #
              # @return [::String]
              def user_list_path customer_id:, user_list_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/userLists/#{user_list_id}"
              end

              ##
              # Create a fully-qualified UserLocationView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/userLocationViews/{country_criterion_id}~{is_targeting_location}`
              #
              # @param customer_id [String]
              # @param country_criterion_id [String]
              # @param is_targeting_location [String]
              #
              # @return [::String]
              def user_location_view_path customer_id:, country_criterion_id:, is_targeting_location:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "country_criterion_id cannot contain /" if country_criterion_id.to_s.include? "/"

                "customers/#{customer_id}/userLocationViews/#{country_criterion_id}~#{is_targeting_location}"
              end

              ##
              # Create a fully-qualified Video resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/videos/{video_id}`
              #
              # @param customer_id [String]
              # @param video_id [String]
              #
              # @return [::String]
              def video_path customer_id:, video_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/videos/#{video_id}"
              end

              extend self
            end
          end
        end
      end
    end
  end
end
