# frozen_string_literal: true

# Copyright 2025 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 V19
        module Services
          module GoogleAdsService
            # Path helper methods for the GoogleAdsService API.
            module Paths
              ##
              # Create a fully-qualified AccessibleBiddingStrategy resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
              #
              # @param customer_id [String]
              # @param bidding_strategy_id [String]
              #
              # @return [::String]
              def accessible_bidding_strategy_path customer_id:, bidding_strategy_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

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

              ##
              # 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 AdGroupAdAssetCombinationView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupAdAssetCombinationViews/{ad_group_id}~{ad_id}~{asset_combination_id_low}~{asset_combination_id_high}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param ad_id [String]
              # @param asset_combination_id_low [String]
              # @param asset_combination_id_high [String]
              #
              # @return [::String]
              def ad_group_ad_asset_combination_view_path customer_id:, ad_group_id:, ad_id:,
                                                          asset_combination_id_low:, asset_combination_id_high:
                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? "/"
                if asset_combination_id_low.to_s.include? "/"
                  raise ::ArgumentError,
                        "asset_combination_id_low cannot contain /"
                end

                "customers/#{customer_id}/adGroupAdAssetCombinationViews/#{ad_group_id}~#{ad_id}~#{asset_combination_id_low}~#{asset_combination_id_high}"
              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 AdGroupAsset resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param asset_id [String]
              # @param field_type [String]
              #
              # @return [::String]
              def ad_group_asset_path customer_id:, ad_group_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, "asset_id cannot contain /" if asset_id.to_s.include? "/"

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

              ##
              # Create a fully-qualified AdGroupAssetSet resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param asset_set_id [String]
              #
              # @return [::String]
              def ad_group_asset_set_path customer_id:, ad_group_id:, asset_set_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}/adGroupAssetSets/#{ad_group_id}~#{asset_set_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 AdGroupCriterionCustomizer resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              # @param customizer_attribute_id [String]
              #
              # @return [::String]
              def ad_group_criterion_customizer_path customer_id:, ad_group_id:, criterion_id:, customizer_attribute_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}/adGroupCriterionCustomizers/#{ad_group_id}~#{criterion_id}~#{customizer_attribute_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 AdGroupCustomizer resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param customizer_attribute_id [String]
              #
              # @return [::String]
              def ad_group_customizer_path customer_id:, ad_group_id:, customizer_attribute_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}/adGroupCustomizers/#{ad_group_id}~#{customizer_attribute_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 AndroidPrivacySharedKeyGoogleAdGroup resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/androidPrivacySharedKeyGoogleAdGroups/{campaign_id}~{ad_group_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param ad_group_id [String]
              # @param android_privacy_interaction_type [String]
              # @param android_privacy_network_type [String]
              # @param android_privacy_interaction_date [String]
              #
              # @return [::String]
              def android_privacy_shared_key_google_ad_group_path customer_id:, campaign_id:, ad_group_id:,
                                                                  android_privacy_interaction_type:, android_privacy_network_type:, android_privacy_interaction_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, "ad_group_id cannot contain /" if ad_group_id.to_s.include? "/"
                if android_privacy_interaction_type.to_s.include? "/"
                  raise ::ArgumentError,
                        "android_privacy_interaction_type cannot contain /"
                end
                if android_privacy_network_type.to_s.include? "/"
                  raise ::ArgumentError,
                        "android_privacy_network_type cannot contain /"
                end

                "customers/#{customer_id}/androidPrivacySharedKeyGoogleAdGroups/#{campaign_id}~#{ad_group_id}~#{android_privacy_interaction_type}~#{android_privacy_network_type}~#{android_privacy_interaction_date}"
              end

              ##
              # Create a fully-qualified AndroidPrivacySharedKeyGoogleCampaign resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/androidPrivacySharedKeyGoogleCampaigns/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_interaction_date}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param android_privacy_interaction_type [String]
              # @param android_privacy_interaction_date [String]
              #
              # @return [::String]
              def android_privacy_shared_key_google_campaign_path customer_id:, campaign_id:,
                                                                  android_privacy_interaction_type:, android_privacy_interaction_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? "/"
                if android_privacy_interaction_type.to_s.include? "/"
                  raise ::ArgumentError,
                        "android_privacy_interaction_type cannot contain /"
                end

                "customers/#{customer_id}/androidPrivacySharedKeyGoogleCampaigns/#{campaign_id}~#{android_privacy_interaction_type}~#{android_privacy_interaction_date}"
              end

              ##
              # Create a fully-qualified AndroidPrivacySharedKeyGoogleNetworkType resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param android_privacy_interaction_type [String]
              # @param android_privacy_network_type [String]
              # @param android_privacy_interaction_date [String]
              #
              # @return [::String]
              def android_privacy_shared_key_google_network_type_path customer_id:, campaign_id:,
                                                                      android_privacy_interaction_type:, android_privacy_network_type:, android_privacy_interaction_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? "/"
                if android_privacy_interaction_type.to_s.include? "/"
                  raise ::ArgumentError,
                        "android_privacy_interaction_type cannot contain /"
                end
                if android_privacy_network_type.to_s.include? "/"
                  raise ::ArgumentError,
                        "android_privacy_network_type cannot contain /"
                end

                "customers/#{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/#{campaign_id}~#{android_privacy_interaction_type}~#{android_privacy_network_type}~#{android_privacy_interaction_date}"
              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 AssetFieldTypeView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/assetFieldTypeViews/{field_type}`
              #
              # @param customer_id [String]
              # @param field_type [String]
              #
              # @return [::String]
              def asset_field_type_view_path customer_id:, field_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/assetFieldTypeViews/#{field_type}"
              end

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

                "customers/#{customer_id}/assetGroups/#{asset_group_id}"
              end

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

                "customers/#{customer_id}/assetGroupAssets/#{asset_group_id}~#{asset_id}~#{field_type}"
              end

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

                "customers/#{customer_id}/assetGroupListingGroupFilters/#{asset_group_id}~#{listing_group_filter_id}"
              end

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

                "customers/#{customer_id}/assetGroupProductGroupViews/#{asset_group_id}~#{listing_group_filter_id}"
              end

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

                "customers/#{customer_id}/assetGroupSignals/#{asset_group_id}~#{criterion_id}"
              end

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

                "customers/#{customer_id}/assetGroupTopCombinationViews/#{asset_group_id}~#{asset_combination_category}"
              end

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

                "customers/#{customer_id}/assetSets/#{asset_set_id}"
              end

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

                "customers/#{customer_id}/assetSetAssets/#{asset_set_id}~#{asset_id}"
              end

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

                "customers/#{customer_id}/assetSetTypeViews/#{asset_set_type}"
              end

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

                "customers/#{customer_id}/audiences/#{audience_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 BiddingDataExclusion resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/biddingDataExclusions/{seasonality_event_id}`
              #
              # @param customer_id [String]
              # @param seasonality_event_id [String]
              #
              # @return [::String]
              def bidding_data_exclusion_path customer_id:, seasonality_event_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/biddingDataExclusions/#{seasonality_event_id}"
              end

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

                "customers/#{customer_id}/biddingSeasonalityAdjustments/#{seasonality_event_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 BiddingStrategySimulation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}`
              #
              # @param customer_id [String]
              # @param bidding_strategy_id [String]
              # @param type [String]
              # @param modification_method [String]
              # @param start_date [String]
              # @param end_date [String]
              #
              # @return [::String]
              def bidding_strategy_simulation_path customer_id:, bidding_strategy_id:, type:, modification_method:,
                                                   start_date:, end_date:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "bidding_strategy_id cannot contain /" if bidding_strategy_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}/biddingStrategySimulations/#{bidding_strategy_id}~#{type}~#{modification_method}~#{start_date}~#{end_date}"
              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 CallView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/callViews/{call_detail_id}`
              #
              # @param customer_id [String]
              # @param call_detail_id [String]
              #
              # @return [::String]
              def call_view_path customer_id:, call_detail_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/callViews/#{call_detail_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 CampaignAggregateAssetView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignAggregateAssetViews/{campaign_id}~{asset_id}~{asset_link_source}~{field_type}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param asset_id [String]
              # @param asset_link_source [String]
              # @param field_type [String]
              #
              # @return [::String]
              def campaign_aggregate_asset_view_path customer_id:, campaign_id:, asset_id:, asset_link_source:,
                                                     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? "/"
                raise ::ArgumentError, "asset_link_source cannot contain /" if asset_link_source.to_s.include? "/"

                "customers/#{customer_id}/campaignAggregateAssetViews/#{campaign_id}~#{asset_id}~#{asset_link_source}~#{field_type}"
              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 CampaignAssetSet resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param asset_set_id [String]
              #
              # @return [::String]
              def campaign_asset_set_path customer_id:, campaign_id:, asset_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}/campaignAssetSets/#{campaign_id}~#{asset_set_id}"
              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 CampaignConversionGoal resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{source}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param category [String]
              # @param source [String]
              #
              # @return [::String]
              def campaign_conversion_goal_path customer_id:, campaign_id:, category:, source:
                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, "category cannot contain /" if category.to_s.include? "/"

                "customers/#{customer_id}/campaignConversionGoals/#{campaign_id}~#{category}~#{source}"
              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 CampaignCustomizer resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param customizer_attribute_id [String]
              #
              # @return [::String]
              def campaign_customizer_path customer_id:, campaign_id:, customizer_attribute_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}/campaignCustomizers/#{campaign_id}~#{customizer_attribute_id}"
              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 CampaignGroup resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignGroups/{campaign_group_id}`
              #
              # @param customer_id [String]
              # @param campaign_group_id [String]
              #
              # @return [::String]
              def campaign_group_path customer_id:, campaign_group_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/campaignGroups/#{campaign_group_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 CampaignLifecycleGoal resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignLifecycleGoals/{campaign_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              #
              # @return [::String]
              def campaign_lifecycle_goal_path customer_id:, campaign_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

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

              ##
              # Create a fully-qualified CampaignSearchTermInsight resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignSearchTermInsights/{campaign_id}~{cluster_id}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param cluster_id [String]
              #
              # @return [::String]
              def campaign_search_term_insight_path customer_id:, campaign_id:, cluster_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}/campaignSearchTermInsights/#{campaign_id}~#{cluster_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 CampaignSimulation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param type [String]
              # @param modification_method [String]
              # @param start_date [String]
              # @param end_date [String]
              #
              # @return [::String]
              def campaign_simulation_path customer_id:, campaign_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, "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}/campaignSimulations/#{campaign_id}~#{type}~#{modification_method}~#{start_date}~#{end_date}"
              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 ChannelAggregateAssetView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/channelAggregateAssetViews/{advertising_channel_type}~{asset_id}~{asset_source}~{field_type}`
              #
              # @param customer_id [String]
              # @param advertising_channel_type [String]
              # @param asset_id [String]
              # @param asset_source [String]
              # @param field_type [String]
              #
              # @return [::String]
              def channel_aggregate_asset_view_path customer_id:, advertising_channel_type:, asset_id:, asset_source:,
                                                    field_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                if advertising_channel_type.to_s.include? "/"
                  raise ::ArgumentError,
                        "advertising_channel_type cannot contain /"
                end
                raise ::ArgumentError, "asset_id cannot contain /" if asset_id.to_s.include? "/"
                raise ::ArgumentError, "asset_source cannot contain /" if asset_source.to_s.include? "/"

                "customers/#{customer_id}/channelAggregateAssetViews/#{advertising_channel_type}~#{asset_id}~#{asset_source}~#{field_type}"
              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 ContentCriterionView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/contentCriterionViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def content_criterion_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}/contentCriterionViews/#{ad_group_id}~#{criterion_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 ConversionCustomVariable resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}`
              #
              # @param customer_id [String]
              # @param conversion_custom_variable_id [String]
              #
              # @return [::String]
              def conversion_custom_variable_path customer_id:, conversion_custom_variable_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/conversionCustomVariables/#{conversion_custom_variable_id}"
              end

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

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

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

                "customers/#{customer_id}/conversionValueRules/#{conversion_value_rule_id}"
              end

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

                "customers/#{customer_id}/conversionValueRuleSets/#{conversion_value_rule_set_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 CustomConversionGoal resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customConversionGoals/{goal_id}`
              #
              # @param customer_id [String]
              # @param goal_id [String]
              #
              # @return [::String]
              def custom_conversion_goal_path customer_id:, goal_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customConversionGoals/#{goal_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 CustomerAsset resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`
              #
              # @param customer_id [String]
              # @param asset_id [String]
              # @param field_type [String]
              #
              # @return [::String]
              def customer_asset_path customer_id:, asset_id:, field_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "asset_id cannot contain /" if asset_id.to_s.include? "/"

                "customers/#{customer_id}/customerAssets/#{asset_id}~#{field_type}"
              end

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

                "customers/#{customer_id}/customerAssetSets/#{asset_set_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 CustomerConversionGoal resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerConversionGoals/{category}~{source}`
              #
              # @param customer_id [String]
              # @param category [String]
              # @param source [String]
              #
              # @return [::String]
              def customer_conversion_goal_path customer_id:, category:, source:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "category cannot contain /" if category.to_s.include? "/"

                "customers/#{customer_id}/customerConversionGoals/#{category}~#{source}"
              end

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

                "customers/#{customer_id}/customerCustomizers/#{customizer_attribute_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 CustomerLifecycleGoal resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerLifecycleGoals`
              #
              # @param customer_id [String]
              #
              # @return [::String]
              def customer_lifecycle_goal_path customer_id:
                "customers/#{customer_id}/customerLifecycleGoals"
              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 CustomerSearchTermInsight resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerSearchTermInsights/{cluster_id}`
              #
              # @param customer_id [String]
              # @param cluster_id [String]
              #
              # @return [::String]
              def customer_search_term_insight_path customer_id:, cluster_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerSearchTermInsights/#{cluster_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 CustomerUserAccessInvitation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`
              #
              # @param customer_id [String]
              # @param invitation_id [String]
              #
              # @return [::String]
              def customer_user_access_invitation_path customer_id:, invitation_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/customerUserAccessInvitations/#{invitation_id}"
              end

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

                "customers/#{customer_id}/customizerAttributes/#{customizer_attribute_id}"
              end

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

                "customers/#{customer_id}/dataLinks/#{product_link_id}~#{data_link_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 DetailedDemographic resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}`
              #
              # @param customer_id [String]
              # @param detailed_demographic_id [String]
              #
              # @return [::String]
              def detailed_demographic_path customer_id:, detailed_demographic_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/detailedDemographics/#{detailed_demographic_id}"
              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? "/"
                if search_term_fingerprint.to_s.include? "/"
                  raise ::ArgumentError,
                        "search_term_fingerprint cannot contain /"
                end
                raise ::ArgumentError, "headline_fingerprint cannot contain /" if headline_fingerprint.to_s.include? "/"
                if landing_page_fingerprint.to_s.include? "/"
                  raise ::ArgumentError,
                        "landing_page_fingerprint cannot contain /"
                end

                "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 Experiment resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/experiments/{trial_id}`
              #
              # @param customer_id [String]
              # @param trial_id [String]
              #
              # @return [::String]
              def experiment_path customer_id:, trial_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/experiments/#{trial_id}"
              end

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

                "customers/#{customer_id}/experimentArms/#{trial_id}~#{trial_arm_id}"
              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 HotelReconciliation resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/hotelReconciliations/{commission_id}`
              #
              # @param customer_id [String]
              # @param commission_id [String]
              #
              # @return [::String]
              def hotel_reconciliation_path customer_id:, commission_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/hotelReconciliations/#{commission_id}"
              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 KeywordThemeConstant resource string.
              #
              # The resource will be in the following format:
              #
              # `keywordThemeConstants/{express_category_id}~{express_sub_category_id}`
              #
              # @param express_category_id [String]
              # @param express_sub_category_id [String]
              #
              # @return [::String]
              def keyword_theme_constant_path express_category_id:, express_sub_category_id:
                raise ::ArgumentError, "express_category_id cannot contain /" if express_category_id.to_s.include? "/"

                "keywordThemeConstants/#{express_category_id}~#{express_sub_category_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 LeadFormSubmissionData resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/leadFormSubmissionData/{lead_form_user_submission_id}`
              #
              # @param customer_id [String]
              # @param lead_form_user_submission_id [String]
              #
              # @return [::String]
              def lead_form_submission_data_path customer_id:, lead_form_user_submission_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/leadFormSubmissionData/#{lead_form_user_submission_id}"
              end

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

                "customers/#{customer_id}/lifeEvents/#{life_event_id}"
              end

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

                "customers/#{customer_id}/localServicesEmployees/#{gls_employee_id}"
              end

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

                "customers/#{customer_id}/localServicesLeads/#{local_services_lead_id}"
              end

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

                "customers/#{customer_id}/localServicesLeadConversations/#{local_services_lead_conversation_id}"
              end

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

                "customers/#{customer_id}/localServicesVerificationArtifacts/#{gls_verification_artifact_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 OfflineConversionUploadClientSummary resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}`
              #
              # @param customer_id [String]
              # @param client [String]
              #
              # @return [::String]
              def offline_conversion_upload_client_summary_path customer_id:, client:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/offlineConversionUploadClientSummaries/#{client}"
              end

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

                "customers/#{customer_id}/offlineConversionUploadConversionActionSummaries/#{conversion_type_id}~#{client}"
              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 PerStoreView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/perStoreViews/{place_id}`
              #
              # @param customer_id [String]
              # @param place_id [String]
              #
              # @return [::String]
              def per_store_view_path customer_id:, place_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/perStoreViews/#{place_id}"
              end

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

                "customers/#{customer_id}/performanceMaxPlacementViews/#{base_64_placement}"
              end

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

                "productCategoryConstants/#{level}~#{category_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 ProductLink resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/productLinks/{product_link_id}`
              #
              # @param customer_id [String]
              # @param product_link_id [String]
              #
              # @return [::String]
              def product_link_path customer_id:, product_link_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/productLinks/#{product_link_id}"
              end

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

                "customers/#{customer_id}/productLinkInvitations/#{customer_invitation_id}"
              end

              ##
              # Create a fully-qualified QualifyingQuestion resource string.
              #
              # The resource will be in the following format:
              #
              # `qualifyingQuestions/{qualifying_question_id}`
              #
              # @param qualifying_question_id [String]
              #
              # @return [::String]
              def qualifying_question_path qualifying_question_id:
                "qualifyingQuestions/#{qualifying_question_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 RecommendationSubscription resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/recommendationSubscriptions/{recommendation_type}`
              #
              # @param customer_id [String]
              # @param recommendation_type [String]
              #
              # @return [::String]
              def recommendation_subscription_path customer_id:, recommendation_type:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"

                "customers/#{customer_id}/recommendationSubscriptions/#{recommendation_type}"
              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 ShoppingProduct resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}`
              #
              # @param customer_id [String]
              # @param merchant_center_id [String]
              # @param channel [String]
              # @param language_code [String]
              # @param feed_label [String]
              # @param item_id [String]
              #
              # @return [::String]
              def shopping_product_path customer_id:, merchant_center_id:, channel:, language_code:, feed_label:,
                                        item_id:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "merchant_center_id cannot contain /" if merchant_center_id.to_s.include? "/"
                raise ::ArgumentError, "channel cannot contain /" if channel.to_s.include? "/"
                raise ::ArgumentError, "language_code cannot contain /" if language_code.to_s.include? "/"
                raise ::ArgumentError, "feed_label cannot contain /" if feed_label.to_s.include? "/"

                "customers/#{customer_id}/shoppingProducts/#{merchant_center_id}~#{channel}~#{language_code}~#{feed_label}~#{item_id}"
              end

              ##
              # Create a fully-qualified SmartCampaignSearchTermView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{query}`
              #
              # @param customer_id [String]
              # @param campaign_id [String]
              # @param query [String]
              #
              # @return [::String]
              def smart_campaign_search_term_view_path customer_id:, campaign_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? "/"

                "customers/#{customer_id}/smartCampaignSearchTermViews/#{campaign_id}~#{query}"
              end

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

                "customers/#{customer_id}/smartCampaignSettings/#{campaign_id}"
              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 TravelActivityGroupView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/travelActivityGroupViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def travel_activity_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}/travelActivityGroupViews/#{ad_group_id}~#{criterion_id}"
              end

              ##
              # Create a fully-qualified TravelActivityPerformanceView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/travelActivityPerformanceViews`
              #
              # @param customer_id [String]
              #
              # @return [::String]
              def travel_activity_performance_view_path customer_id:
                "customers/#{customer_id}/travelActivityPerformanceViews"
              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 UserListCustomerType resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{semantic_label}`
              #
              # @param customer_id [String]
              # @param user_list_id [String]
              # @param semantic_label [String]
              #
              # @return [::String]
              def user_list_customer_type_path customer_id:, user_list_id:, semantic_label:
                raise ::ArgumentError, "customer_id cannot contain /" if customer_id.to_s.include? "/"
                raise ::ArgumentError, "user_list_id cannot contain /" if user_list_id.to_s.include? "/"

                "customers/#{customer_id}/userListCustomerTypes/#{user_list_id}~#{semantic_label}"
              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

              ##
              # Create a fully-qualified WebpageView resource string.
              #
              # The resource will be in the following format:
              #
              # `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}`
              #
              # @param customer_id [String]
              # @param ad_group_id [String]
              # @param criterion_id [String]
              #
              # @return [::String]
              def webpage_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}/webpageViews/#{ad_group_id}~#{criterion_id}"
              end

              extend self
            end
          end
        end
      end
    end
  end
end
