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

namespace Google\Ads\DataManager\V1;

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

/**
 * Represents a user list that is populated by user provided data.
 *
 * Generated from protobuf message <code>google.ads.datamanager.v1.IngestedUserListInfo</code>
 */
class IngestedUserListInfo extends \Google\Protobuf\Internal\Message
{
    /**
     * Required. Immutable. Upload key types of this user list.
     *
     * Generated from protobuf field <code>repeated .google.ads.datamanager.v1.IngestedUserListInfo.UploadKeyType upload_key_types = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];</code>
     */
    private $upload_key_types;
    /**
     * Optional. Additional information when `CONTACT_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.ContactIdInfo contact_id_info = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $contact_id_info = null;
    /**
     * Optional. Additional information when `MOBILE_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.MobileIdInfo mobile_id_info = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $mobile_id_info = null;
    /**
     * Optional. Additional information when `USER_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserIdInfo user_id_info = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $user_id_info = null;
    /**
     * Optional. Additional information when `PAIR_ID` is one of the
     * `upload_key_types`.
     * This feature is only available to data partners.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PairIdInfo pair_id_info = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $pair_id_info = null;
    /**
     * Optional. Additional information for `PSEUDONYMOUS_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PseudonymousIdInfo pseudonymous_id_info = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $pseudonymous_id_info = null;
    /**
     * Optional. Additional information for partner audiences.
     * This feature is only available to data partners.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PartnerAudienceInfo partner_audience_info = 7 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $partner_audience_info = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int[] $upload_key_types
     *           Required. Immutable. Upload key types of this user list.
     *     @type \Google\Ads\DataManager\V1\ContactIdInfo $contact_id_info
     *           Optional. Additional information when `CONTACT_ID` is one of the
     *           `upload_key_types`.
     *     @type \Google\Ads\DataManager\V1\MobileIdInfo $mobile_id_info
     *           Optional. Additional information when `MOBILE_ID` is one of the
     *           `upload_key_types`.
     *     @type \Google\Ads\DataManager\V1\UserIdInfo $user_id_info
     *           Optional. Additional information when `USER_ID` is one of the
     *           `upload_key_types`.
     *     @type \Google\Ads\DataManager\V1\PairIdInfo $pair_id_info
     *           Optional. Additional information when `PAIR_ID` is one of the
     *           `upload_key_types`.
     *           This feature is only available to data partners.
     *     @type \Google\Ads\DataManager\V1\PseudonymousIdInfo $pseudonymous_id_info
     *           Optional. Additional information for `PSEUDONYMOUS_ID` is one of the
     *           `upload_key_types`.
     *     @type \Google\Ads\DataManager\V1\PartnerAudienceInfo $partner_audience_info
     *           Optional. Additional information for partner audiences.
     *           This feature is only available to data partners.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\Datamanager\V1\UserList::initOnce();
        parent::__construct($data);
    }

    /**
     * Required. Immutable. Upload key types of this user list.
     *
     * Generated from protobuf field <code>repeated .google.ads.datamanager.v1.IngestedUserListInfo.UploadKeyType upload_key_types = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @return RepeatedField<int>
     */
    public function getUploadKeyTypes()
    {
        return $this->upload_key_types;
    }

    /**
     * Required. Immutable. Upload key types of this user list.
     *
     * Generated from protobuf field <code>repeated .google.ads.datamanager.v1.IngestedUserListInfo.UploadKeyType upload_key_types = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];</code>
     * @param int[] $var
     * @return $this
     */
    public function setUploadKeyTypes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Ads\DataManager\V1\IngestedUserListInfo\UploadKeyType::class);
        $this->upload_key_types = $arr;

        return $this;
    }

    /**
     * Optional. Additional information when `CONTACT_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.ContactIdInfo contact_id_info = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Ads\DataManager\V1\ContactIdInfo|null
     */
    public function getContactIdInfo()
    {
        return $this->contact_id_info;
    }

    public function hasContactIdInfo()
    {
        return isset($this->contact_id_info);
    }

    public function clearContactIdInfo()
    {
        unset($this->contact_id_info);
    }

    /**
     * Optional. Additional information when `CONTACT_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.ContactIdInfo contact_id_info = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Ads\DataManager\V1\ContactIdInfo $var
     * @return $this
     */
    public function setContactIdInfo($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\ContactIdInfo::class);
        $this->contact_id_info = $var;

        return $this;
    }

    /**
     * Optional. Additional information when `MOBILE_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.MobileIdInfo mobile_id_info = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Ads\DataManager\V1\MobileIdInfo|null
     */
    public function getMobileIdInfo()
    {
        return $this->mobile_id_info;
    }

    public function hasMobileIdInfo()
    {
        return isset($this->mobile_id_info);
    }

    public function clearMobileIdInfo()
    {
        unset($this->mobile_id_info);
    }

    /**
     * Optional. Additional information when `MOBILE_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.MobileIdInfo mobile_id_info = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Ads\DataManager\V1\MobileIdInfo $var
     * @return $this
     */
    public function setMobileIdInfo($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\MobileIdInfo::class);
        $this->mobile_id_info = $var;

        return $this;
    }

    /**
     * Optional. Additional information when `USER_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserIdInfo user_id_info = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Ads\DataManager\V1\UserIdInfo|null
     */
    public function getUserIdInfo()
    {
        return $this->user_id_info;
    }

    public function hasUserIdInfo()
    {
        return isset($this->user_id_info);
    }

    public function clearUserIdInfo()
    {
        unset($this->user_id_info);
    }

    /**
     * Optional. Additional information when `USER_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.UserIdInfo user_id_info = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Ads\DataManager\V1\UserIdInfo $var
     * @return $this
     */
    public function setUserIdInfo($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\UserIdInfo::class);
        $this->user_id_info = $var;

        return $this;
    }

    /**
     * Optional. Additional information when `PAIR_ID` is one of the
     * `upload_key_types`.
     * This feature is only available to data partners.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PairIdInfo pair_id_info = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Ads\DataManager\V1\PairIdInfo|null
     */
    public function getPairIdInfo()
    {
        return $this->pair_id_info;
    }

    public function hasPairIdInfo()
    {
        return isset($this->pair_id_info);
    }

    public function clearPairIdInfo()
    {
        unset($this->pair_id_info);
    }

    /**
     * Optional. Additional information when `PAIR_ID` is one of the
     * `upload_key_types`.
     * This feature is only available to data partners.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PairIdInfo pair_id_info = 5 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Ads\DataManager\V1\PairIdInfo $var
     * @return $this
     */
    public function setPairIdInfo($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\PairIdInfo::class);
        $this->pair_id_info = $var;

        return $this;
    }

    /**
     * Optional. Additional information for `PSEUDONYMOUS_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PseudonymousIdInfo pseudonymous_id_info = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Ads\DataManager\V1\PseudonymousIdInfo|null
     */
    public function getPseudonymousIdInfo()
    {
        return $this->pseudonymous_id_info;
    }

    public function hasPseudonymousIdInfo()
    {
        return isset($this->pseudonymous_id_info);
    }

    public function clearPseudonymousIdInfo()
    {
        unset($this->pseudonymous_id_info);
    }

    /**
     * Optional. Additional information for `PSEUDONYMOUS_ID` is one of the
     * `upload_key_types`.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PseudonymousIdInfo pseudonymous_id_info = 6 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Ads\DataManager\V1\PseudonymousIdInfo $var
     * @return $this
     */
    public function setPseudonymousIdInfo($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\PseudonymousIdInfo::class);
        $this->pseudonymous_id_info = $var;

        return $this;
    }

    /**
     * Optional. Additional information for partner audiences.
     * This feature is only available to data partners.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PartnerAudienceInfo partner_audience_info = 7 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Ads\DataManager\V1\PartnerAudienceInfo|null
     */
    public function getPartnerAudienceInfo()
    {
        return $this->partner_audience_info;
    }

    public function hasPartnerAudienceInfo()
    {
        return isset($this->partner_audience_info);
    }

    public function clearPartnerAudienceInfo()
    {
        unset($this->partner_audience_info);
    }

    /**
     * Optional. Additional information for partner audiences.
     * This feature is only available to data partners.
     *
     * Generated from protobuf field <code>.google.ads.datamanager.v1.PartnerAudienceInfo partner_audience_info = 7 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Ads\DataManager\V1\PartnerAudienceInfo $var
     * @return $this
     */
    public function setPartnerAudienceInfo($var)
    {
        GPBUtil::checkMessage($var, \Google\Ads\DataManager\V1\PartnerAudienceInfo::class);
        $this->partner_audience_info = $var;

        return $this;
    }

}

