<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/ads/datamanager/v1/user_list_global_license.proto

namespace Google\Ads\DataManager\V1;

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

/**
 * Information about a customer of a user list global license.  This will
 * automatically be created by the system when a customer purchases a global
 * license.
 *
 * Generated from protobuf message <code>google.ads.datamanager.v1.UserListGlobalLicenseCustomerInfo</code>
 */
class UserListGlobalLicenseCustomerInfo extends \Google\Protobuf\Internal\Message
{
    /**
     * Identifier. The resource name of the user list global license customer.
     *
     * Generated from protobuf field <code>string name = 1 [(.google.api.field_behavior) = IDENTIFIER];</code>
     */
    protected $name = '';
    /**
     * Output only. ID of the user list being licensed.
     *
     * Generated from protobuf field <code>int64 user_list_id = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $user_list_id = 0;
    /**
     * Output only. Name of the user list being licensed.
     *
     * Generated from protobuf field <code>string user_list_display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $user_list_display_name = '';
    /**
     * Output only. Product type of client customer which the user list is being
     * licensed to.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListGlobalLicenseType license_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $license_type = 0;
    /**
     * Output only. Status of UserListDirectLicense - ENABLED or DISABLED.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseStatus status = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $status = 0;
    /**
     * Output only. UserListDirectLicense pricing.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicensePricing pricing = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $pricing = null;
    /**
     * Output only. Product type of client customer which the user list is being
     * licensed to.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseClientAccountType client_account_type = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $client_account_type = 0;
    /**
     * Output only. ID of client customer which the user list is being licensed
     * to.
     *
     * Generated from protobuf field <code>int64 client_account_id = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $client_account_id = 0;
    /**
     * Output only. Name of client customer which the user list is being licensed
     * to.
     *
     * Generated from protobuf field <code>string client_account_display_name = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $client_account_display_name = '';
    /**
     * Output only. Pricing history of this user list license.
     *
     * Generated from protobuf field <code>repeated .google.ads.datamanager.v1.UserListLicensePricing historical_pricings = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    private $historical_pricings;
    /**
     * Output only. Metrics related to this license
     * This field is only populated if the start and end dates are set in the
     * ListUserListGlobalLicenseCustomerInfos call.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseMetrics metrics = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $metrics = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           Identifier. The resource name of the user list global license customer.
     *     @type int|string $user_list_id
     *           Output only. ID of the user list being licensed.
     *     @type string $user_list_display_name
     *           Output only. Name of the user list being licensed.
     *     @type int $license_type
     *           Output only. Product type of client customer which the user list is being
     *           licensed to.
     *     @type int $status
     *           Output only. Status of UserListDirectLicense - ENABLED or DISABLED.
     *     @type \Google\Ads\DataManager\V1\UserListLicensePricing $pricing
     *           Output only. UserListDirectLicense pricing.
     *     @type int $client_account_type
     *           Output only. Product type of client customer which the user list is being
     *           licensed to.
     *     @type int|string $client_account_id
     *           Output only. ID of client customer which the user list is being licensed
     *           to.
     *     @type string $client_account_display_name
     *           Output only. Name of client customer which the user list is being licensed
     *           to.
     *     @type array<\Google\Ads\DataManager\V1\UserListLicensePricing>|\Google\Protobuf\Internal\RepeatedField $historical_pricings
     *           Output only. Pricing history of this user list license.
     *     @type \Google\Ads\DataManager\V1\UserListLicenseMetrics $metrics
     *           Output only. Metrics related to this license
     *           This field is only populated if the start and end dates are set in the
     *           ListUserListGlobalLicenseCustomerInfos call.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\Datamanager\V1\UserListGlobalLicense::initOnce();
        parent::__construct($data);
    }

    /**
     * Identifier. The resource name of the user list global license customer.
     *
     * Generated from protobuf field <code>string name = 1 [(.google.api.field_behavior) = IDENTIFIER];</code>
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Identifier. The resource name of the user list global license customer.
     *
     * Generated from protobuf field <code>string name = 1 [(.google.api.field_behavior) = IDENTIFIER];</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

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

    /**
     * Output only. ID of the user list being licensed.
     *
     * Generated from protobuf field <code>int64 user_list_id = 2 [(.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. Name of the user list being licensed.
     *
     * Generated from protobuf field <code>string user_list_display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getUserListDisplayName()
    {
        return $this->user_list_display_name;
    }

    /**
     * Output only. Name of the user list being licensed.
     *
     * Generated from protobuf field <code>string user_list_display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setUserListDisplayName($var)
    {
        GPBUtil::checkString($var, True);
        $this->user_list_display_name = $var;

        return $this;
    }

    /**
     * Output only. Product type of client customer which the user list is being
     * licensed to.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListGlobalLicenseType license_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getLicenseType()
    {
        return $this->license_type;
    }

    /**
     * Output only. Product type of client customer which the user list is being
     * licensed to.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListGlobalLicenseType license_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setLicenseType($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\DataManager\V1\UserListGlobalLicenseType::class);
        $this->license_type = $var;

        return $this;
    }

    /**
     * Output only. Status of UserListDirectLicense - ENABLED or DISABLED.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseStatus status = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * Output only. Status of UserListDirectLicense - ENABLED or DISABLED.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseStatus status = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setStatus($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\DataManager\V1\UserListLicenseStatus::class);
        $this->status = $var;

        return $this;
    }

    /**
     * Output only. UserListDirectLicense pricing.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicensePricing pricing = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Ads\DataManager\V1\UserListLicensePricing|null
     */
    public function getPricing()
    {
        return $this->pricing;
    }

    public function hasPricing()
    {
        return isset($this->pricing);
    }

    public function clearPricing()
    {
        unset($this->pricing);
    }

    /**
     * Output only. UserListDirectLicense pricing.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicensePricing pricing = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Ads\DataManager\V1\UserListLicensePricing $var
     * @return $this
     */
    public function setPricing($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\UserListLicensePricing::class);
        $this->pricing = $var;

        return $this;
    }

    /**
     * Output only. Product type of client customer which the user list is being
     * licensed to.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseClientAccountType client_account_type = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getClientAccountType()
    {
        return $this->client_account_type;
    }

    /**
     * Output only. Product type of client customer which the user list is being
     * licensed to.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseClientAccountType client_account_type = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setClientAccountType($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\DataManager\V1\UserListLicenseClientAccountType::class);
        $this->client_account_type = $var;

        return $this;
    }

    /**
     * Output only. ID of client customer which the user list is being licensed
     * to.
     *
     * Generated from protobuf field <code>int64 client_account_id = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int|string
     */
    public function getClientAccountId()
    {
        return $this->client_account_id;
    }

    /**
     * Output only. ID of client customer which the user list is being licensed
     * to.
     *
     * Generated from protobuf field <code>int64 client_account_id = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int|string $var
     * @return $this
     */
    public function setClientAccountId($var)
    {
        GPBUtil::checkInt64($var);
        $this->client_account_id = $var;

        return $this;
    }

    /**
     * Output only. Name of client customer which the user list is being licensed
     * to.
     *
     * Generated from protobuf field <code>string client_account_display_name = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getClientAccountDisplayName()
    {
        return $this->client_account_display_name;
    }

    /**
     * Output only. Name of client customer which the user list is being licensed
     * to.
     *
     * Generated from protobuf field <code>string client_account_display_name = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setClientAccountDisplayName($var)
    {
        GPBUtil::checkString($var, True);
        $this->client_account_display_name = $var;

        return $this;
    }

    /**
     * Output only. Pricing history of this user list license.
     *
     * Generated from protobuf field <code>repeated .google.ads.datamanager.v1.UserListLicensePricing historical_pricings = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getHistoricalPricings()
    {
        return $this->historical_pricings;
    }

    /**
     * Output only. Pricing history of this user list license.
     *
     * Generated from protobuf field <code>repeated .google.ads.datamanager.v1.UserListLicensePricing historical_pricings = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param array<\Google\Ads\DataManager\V1\UserListLicensePricing>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setHistoricalPricings($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Ads\DataManager\V1\UserListLicensePricing::class);
        $this->historical_pricings = $arr;

        return $this;
    }

    /**
     * Output only. Metrics related to this license
     * This field is only populated if the start and end dates are set in the
     * ListUserListGlobalLicenseCustomerInfos call.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseMetrics metrics = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Ads\DataManager\V1\UserListLicenseMetrics|null
     */
    public function getMetrics()
    {
        return $this->metrics;
    }

    public function hasMetrics()
    {
        return isset($this->metrics);
    }

    public function clearMetrics()
    {
        unset($this->metrics);
    }

    /**
     * Output only. Metrics related to this license
     * This field is only populated if the start and end dates are set in the
     * ListUserListGlobalLicenseCustomerInfos call.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserListLicenseMetrics metrics = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Ads\DataManager\V1\UserListLicenseMetrics $var
     * @return $this
     */
    public function setMetrics($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\UserListLicenseMetrics::class);
        $this->metrics = $var;

        return $this;
    }

}

