<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/ads/googleads/v23/resources/recommendation.proto

namespace Google\Ads\GoogleAds\V23\Resources\Recommendation;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * The recommendation to update a customer list that hasn't been updated in
 * the last 90 days. The customer receiving the recommendation is not
 * necessarily the owner account. The owner account should update the customer
 * list.
 *
 * Generated from protobuf message <code>google.ads.googleads.v23.resources.Recommendation.RefreshCustomerMatchListRecommendation</code>
 */
class RefreshCustomerMatchListRecommendation extends \Google\Protobuf\Internal\Message
{
    /**
     * Output only. The user list ID.
     *
     * Generated from protobuf field <code>int64 user_list_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $user_list_id = 0;
    /**
     * Output only. The name of the list.
     *
     * Generated from protobuf field <code>string user_list_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $user_list_name = '';
    /**
     * Output only. Days since last refresh.
     *
     * Generated from protobuf field <code>int64 days_since_last_refresh = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $days_since_last_refresh = 0;
    /**
     * Output only. The top spending account.
     *
     * Generated from protobuf field <code>repeated .google.ads.googleads.v23.resources.Recommendation.AccountInfo top_spending_account = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private $top_spending_account;
    /**
     * Output only. User lists can be shared with other accounts by the owner.
     * targeting_accounts_count is the number of those accounts that can use it
     * for targeting.
     *
     * Generated from protobuf field <code>int64 targeting_accounts_count = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $targeting_accounts_count = 0;
    /**
     * Output only. The owner account. This is the account that should update
     * the customer list.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.resources.Recommendation.AccountInfo owner_account = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $owner_account = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int|string $user_list_id
     *           Output only. The user list ID.
     *     @type string $user_list_name
     *           Output only. The name of the list.
     *     @type int|string $days_since_last_refresh
     *           Output only. Days since last refresh.
     *     @type array<\Google\Ads\GoogleAds\V23\Resources\Recommendation\AccountInfo>|\Google\Protobuf\Internal\RepeatedField $top_spending_account
     *           Output only. The top spending account.
     *     @type int|string $targeting_accounts_count
     *           Output only. User lists can be shared with other accounts by the owner.
     *           targeting_accounts_count is the number of those accounts that can use it
     *           for targeting.
     *     @type \Google\Ads\GoogleAds\V23\Resources\Recommendation\AccountInfo $owner_account
     *           Output only. The owner account. This is the account that should update
     *           the customer list.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\GoogleAds\V23\Resources\Recommendation::initOnce();
        parent::__construct($data);
    }

    /**
     * Output only. The user list ID.
     *
     * Generated from protobuf field <code>int64 user_list_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int|string
     */
    public function getUserListId()
    {
        return $this->user_list_id;
    }

    /**
     * Output only. The user list ID.
     *
     * Generated from protobuf field <code>int64 user_list_id = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int|string $var
     * @return $this
     */
    public function setUserListId($var)
    {
        GPBUtil::checkInt64($var);
        $this->user_list_id = $var;

        return $this;
    }

    /**
     * Output only. The name of the list.
     *
     * Generated from protobuf field <code>string user_list_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getUserListName()
    {
        return $this->user_list_name;
    }

    /**
     * Output only. The name of the list.
     *
     * Generated from protobuf field <code>string user_list_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setUserListName($var)
    {
        GPBUtil::checkString($var, True);
        $this->user_list_name = $var;

        return $this;
    }

    /**
     * Output only. Days since last refresh.
     *
     * Generated from protobuf field <code>int64 days_since_last_refresh = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int|string
     */
    public function getDaysSinceLastRefresh()
    {
        return $this->days_since_last_refresh;
    }

    /**
     * Output only. Days since last refresh.
     *
     * Generated from protobuf field <code>int64 days_since_last_refresh = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int|string $var
     * @return $this
     */
    public function setDaysSinceLastRefresh($var)
    {
        GPBUtil::checkInt64($var);
        $this->days_since_last_refresh = $var;

        return $this;
    }

    /**
     * Output only. The top spending account.
     *
     * Generated from protobuf field <code>repeated .google.ads.googleads.v23.resources.Recommendation.AccountInfo top_spending_account = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getTopSpendingAccount()
    {
        return $this->top_spending_account;
    }

    /**
     * Output only. The top spending account.
     *
     * Generated from protobuf field <code>repeated .google.ads.googleads.v23.resources.Recommendation.AccountInfo top_spending_account = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param array<\Google\Ads\GoogleAds\V23\Resources\Recommendation\AccountInfo>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setTopSpendingAccount($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Ads\GoogleAds\V23\Resources\Recommendation\AccountInfo::class);
        $this->top_spending_account = $arr;

        return $this;
    }

    /**
     * Output only. User lists can be shared with other accounts by the owner.
     * targeting_accounts_count is the number of those accounts that can use it
     * for targeting.
     *
     * Generated from protobuf field <code>int64 targeting_accounts_count = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int|string
     */
    public function getTargetingAccountsCount()
    {
        return $this->targeting_accounts_count;
    }

    /**
     * Output only. User lists can be shared with other accounts by the owner.
     * targeting_accounts_count is the number of those accounts that can use it
     * for targeting.
     *
     * Generated from protobuf field <code>int64 targeting_accounts_count = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int|string $var
     * @return $this
     */
    public function setTargetingAccountsCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->targeting_accounts_count = $var;

        return $this;
    }

    /**
     * Output only. The owner account. This is the account that should update
     * the customer list.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.resources.Recommendation.AccountInfo owner_account = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Ads\GoogleAds\V23\Resources\Recommendation\AccountInfo|null
     */
    public function getOwnerAccount()
    {
        return $this->owner_account;
    }

    public function hasOwnerAccount()
    {
        return isset($this->owner_account);
    }

    public function clearOwnerAccount()
    {
        unset($this->owner_account);
    }

    /**
     * Output only. The owner account. This is the account that should update
     * the customer list.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.resources.Recommendation.AccountInfo owner_account = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Ads\GoogleAds\V23\Resources\Recommendation\AccountInfo $var
     * @return $this
     */
    public function setOwnerAccount($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\GoogleAds\V23\Resources\Recommendation\AccountInfo::class);
        $this->owner_account = $var;

        return $this;
    }

}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(RefreshCustomerMatchListRecommendation::class, \Google\Ads\GoogleAds\V23\Resources\Recommendation_RefreshCustomerMatchListRecommendation::class);

