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

namespace Google\Ads\GoogleAds\V23\Resources\Campaign\VideoCampaignSettings;

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

/**
 * Information about a step within a video sequence.
 *
 * Generated from protobuf message <code>google.ads.googleads.v23.resources.Campaign.VideoCampaignSettings.VideoAdSequenceStep</code>
 */
class VideoAdSequenceStep extends \Google\Protobuf\Internal\Message
{
    /**
     * The ID of this sequence step.
     *
     * Generated from protobuf field <code>int64 video_ad_sequence_step_id = 1;</code>
     */
    protected $video_ad_sequence_step_id = 0;
    /**
     * The ID of the Asset for this step. The asset must be type
     * YOUTUBE_VIDEO.
     *
     * Generated from protobuf field <code>int64 asset_id = 2;</code>
     */
    protected $asset_id = 0;
    /**
     * The ad group type for this step (denoting the video format).
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.enums.AdGroupTypeEnum.AdGroupType ad_group_type = 3;</code>
     */
    protected $ad_group_type = 0;
    /**
     * The ID of the previous step. This field is required for all
     * steps except the first one. It must point to a step that appears in the
     * step definition list before this step.
     *
     * Generated from protobuf field <code>int64 previous_step_id = 4;</code>
     */
    protected $previous_step_id = 0;
    /**
     * Type of interaction *on the previous step* required in order for the
     * user to advance to this step. As with the previous step ID, it's
     * required for every step except for the first one.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.enums.VideoAdSequenceInteractionTypeEnum.VideoAdSequenceInteractionType previous_step_interaction_type = 5;</code>
     */
    protected $previous_step_interaction_type = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int|string $video_ad_sequence_step_id
     *           The ID of this sequence step.
     *     @type int|string $asset_id
     *           The ID of the Asset for this step. The asset must be type
     *           YOUTUBE_VIDEO.
     *     @type int $ad_group_type
     *           The ad group type for this step (denoting the video format).
     *     @type int|string $previous_step_id
     *           The ID of the previous step. This field is required for all
     *           steps except the first one. It must point to a step that appears in the
     *           step definition list before this step.
     *     @type int $previous_step_interaction_type
     *           Type of interaction *on the previous step* required in order for the
     *           user to advance to this step. As with the previous step ID, it's
     *           required for every step except for the first one.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\GoogleAds\V23\Resources\Campaign::initOnce();
        parent::__construct($data);
    }

    /**
     * The ID of this sequence step.
     *
     * Generated from protobuf field <code>int64 video_ad_sequence_step_id = 1;</code>
     * @return int|string
     */
    public function getVideoAdSequenceStepId()
    {
        return $this->video_ad_sequence_step_id;
    }

    /**
     * The ID of this sequence step.
     *
     * Generated from protobuf field <code>int64 video_ad_sequence_step_id = 1;</code>
     * @param int|string $var
     * @return $this
     */
    public function setVideoAdSequenceStepId($var)
    {
        GPBUtil::checkInt64($var);
        $this->video_ad_sequence_step_id = $var;

        return $this;
    }

    /**
     * The ID of the Asset for this step. The asset must be type
     * YOUTUBE_VIDEO.
     *
     * Generated from protobuf field <code>int64 asset_id = 2;</code>
     * @return int|string
     */
    public function getAssetId()
    {
        return $this->asset_id;
    }

    /**
     * The ID of the Asset for this step. The asset must be type
     * YOUTUBE_VIDEO.
     *
     * Generated from protobuf field <code>int64 asset_id = 2;</code>
     * @param int|string $var
     * @return $this
     */
    public function setAssetId($var)
    {
        GPBUtil::checkInt64($var);
        $this->asset_id = $var;

        return $this;
    }

    /**
     * The ad group type for this step (denoting the video format).
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.enums.AdGroupTypeEnum.AdGroupType ad_group_type = 3;</code>
     * @return int
     */
    public function getAdGroupType()
    {
        return $this->ad_group_type;
    }

    /**
     * The ad group type for this step (denoting the video format).
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.enums.AdGroupTypeEnum.AdGroupType ad_group_type = 3;</code>
     * @param int $var
     * @return $this
     */
    public function setAdGroupType($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\GoogleAds\V23\Enums\AdGroupTypeEnum\AdGroupType::class);
        $this->ad_group_type = $var;

        return $this;
    }

    /**
     * The ID of the previous step. This field is required for all
     * steps except the first one. It must point to a step that appears in the
     * step definition list before this step.
     *
     * Generated from protobuf field <code>int64 previous_step_id = 4;</code>
     * @return int|string
     */
    public function getPreviousStepId()
    {
        return $this->previous_step_id;
    }

    /**
     * The ID of the previous step. This field is required for all
     * steps except the first one. It must point to a step that appears in the
     * step definition list before this step.
     *
     * Generated from protobuf field <code>int64 previous_step_id = 4;</code>
     * @param int|string $var
     * @return $this
     */
    public function setPreviousStepId($var)
    {
        GPBUtil::checkInt64($var);
        $this->previous_step_id = $var;

        return $this;
    }

    /**
     * Type of interaction *on the previous step* required in order for the
     * user to advance to this step. As with the previous step ID, it's
     * required for every step except for the first one.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.enums.VideoAdSequenceInteractionTypeEnum.VideoAdSequenceInteractionType previous_step_interaction_type = 5;</code>
     * @return int
     */
    public function getPreviousStepInteractionType()
    {
        return $this->previous_step_interaction_type;
    }

    /**
     * Type of interaction *on the previous step* required in order for the
     * user to advance to this step. As with the previous step ID, it's
     * required for every step except for the first one.
     *
     * Generated from protobuf field <code>.google.ads.googleads.v23.enums.VideoAdSequenceInteractionTypeEnum.VideoAdSequenceInteractionType previous_step_interaction_type = 5;</code>
     * @param int $var
     * @return $this
     */
    public function setPreviousStepInteractionType($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\GoogleAds\V23\Enums\VideoAdSequenceInteractionTypeEnum\VideoAdSequenceInteractionType::class);
        $this->previous_step_interaction_type = $var;

        return $this;
    }

}

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

