# frozen_string_literal: true

# Copyright 2021 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 V7
        module Services
          # Request message for {::Google::Ads::GoogleAds::V7::Services::AccountLinkService::Client#get_account_link AccountLinkService.GetAccountLink}.
          # @!attribute [rw] resource_name
          #   @return [::String]
          #     Required. Resource name of the account link.
          class GetAccountLinkRequest
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # Request message for
          # {::Google::Ads::GoogleAds::V7::Services::AccountLinkService::Client#create_account_link AccountLinkService.CreateAccountLink}.
          # @!attribute [rw] customer_id
          #   @return [::String]
          #     Required. The ID of the customer for which the account link is created.
          # @!attribute [rw] account_link
          #   @return [::Google::Ads::GoogleAds::V7::Resources::AccountLink]
          #     Required. The account link to be created.
          class CreateAccountLinkRequest
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # Response message for
          # {::Google::Ads::GoogleAds::V7::Services::AccountLinkService::Client#create_account_link AccountLinkService.CreateAccountLink}.
          # @!attribute [rw] resource_name
          #   @return [::String]
          #     Returned for successful operations. Resource name of the account link.
          class CreateAccountLinkResponse
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # Request message for {::Google::Ads::GoogleAds::V7::Services::AccountLinkService::Client#mutate_account_link AccountLinkService.MutateAccountLink}.
          # @!attribute [rw] customer_id
          #   @return [::String]
          #     Required. The ID of the customer being modified.
          # @!attribute [rw] operation
          #   @return [::Google::Ads::GoogleAds::V7::Services::AccountLinkOperation]
          #     Required. The operation to perform on the link.
          # @!attribute [rw] partial_failure
          #   @return [::Boolean]
          #     If true, successful operations will be carried out and invalid
          #     operations will return errors. If false, all operations will be carried
          #     out in one transaction if and only if they are all valid.
          #     Default is false.
          # @!attribute [rw] validate_only
          #   @return [::Boolean]
          #     If true, the request is validated but not executed. Only errors are
          #     returned, not results.
          class MutateAccountLinkRequest
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # A single update on an account link.
          # @!attribute [rw] update_mask
          #   @return [::Google::Protobuf::FieldMask]
          #     FieldMask that determines which resource fields are modified in an update.
          # @!attribute [rw] update
          #   @return [::Google::Ads::GoogleAds::V7::Resources::AccountLink]
          #     Update operation: The account link is expected to have
          #     a valid resource name.
          # @!attribute [rw] remove
          #   @return [::String]
          #     Remove operation: A resource name for the account link to remove is
          #     expected, in this format:
          #
          #     `customers/{customer_id}/accountLinks/{account_link_id}`
          class AccountLinkOperation
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # Response message for account link mutate.
          # @!attribute [rw] result
          #   @return [::Google::Ads::GoogleAds::V7::Services::MutateAccountLinkResult]
          #     Result for the mutate.
          class MutateAccountLinkResponse
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end

          # The result for the account link mutate.
          # @!attribute [rw] resource_name
          #   @return [::String]
          #     Returned for successful operations.
          class MutateAccountLinkResult
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end
        end
      end
    end
  end
end
