<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: keyapis/banner/v1/keyapis_banner_banner_v1.proto

namespace Keyapis\Banner\V1;

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

/**
 * Баннер.
 * # Описание модели
 *
 * Generated from protobuf message <code>keyapis.banner.v1.Banner</code>
 */
class Banner extends \Google\Protobuf\Internal\Message
{
    /**
     * Идентификатор.
     * Если не передан создаётся сервером.
     * # Тип: Guid
     *
     * Generated from protobuf field <code>string id = 1;</code>
     */
    protected $id = '';
    /**
     * Тип баннера.
     * Обязательное
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.Type type = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $type = 0;
    /**
     * Приоритет.
     * Обязательное.
     * # Диапазон: 1..255
     *
     * Generated from protobuf field <code>int32 priority = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $priority = 0;
    /**
     * Тип приоритета.
     * # Поле вычисляется в коде приложения
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.PriorityType priority_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $priority_type = 0;
    /**
     * Название.
     * Обязательное.
     * Обычно это название рекламной компании.
     * Не отображается пользователям.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>string title = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $title = '';
    /**
     * Заголовок.
     * # Диапазон: 3..64
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header = 6;</code>
     */
    protected $header = null;
    /**
     * Цвет текста заголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header_color = 7;</code>
     */
    protected $header_color = null;
    /**
     * Подзаголовок.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle = 8;</code>
     */
    protected $subtitle = null;
    /**
     * Цвет текста подзаголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle_color = 9;</code>
     */
    protected $subtitle_color = null;
    /**
     * Цвет заднего плана(подложки).
     * Отрисовывается до загрузки картинки и градиента.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue background_color = 10;</code>
     */
    protected $background_color = null;
    /**
     * Градиент
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.Gradient background_gradient = 11;</code>
     */
    protected $background_gradient = null;
    /**
     * Количество дней через которое можно повторно показать баннер.
     * Если null, то закрыть нельзя, баннер повторно выводится каждый раз.
     * # Диапазон: 0..366
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value repeat_after_days = 12;</code>
     */
    protected $repeat_after_days = null;
    /**
     * Дата начала показа.
     * Обязательное.
     * Бессрочно если значение 2000-01-01.
     * # Тип: DateOnly.
     * # Диапазон: 730119..1095362
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp show_start_at = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $show_start_at = null;
    /**
     * Дата конца показа.
     * Обязательное.
     * Бессрочно если значение 3000-01-01.
     * # Тип: DateOnly.
     * # Диапазон: 730119..1095362
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp show_ended_at = 14 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $show_ended_at = null;
    /**
     * Статус баннера.
     * # Поле вычисляется в коде приложения
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.StatusType status_type = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $status_type = 0;
    /**
     * Картинки.
     * # Диапазон: 0..20
     *
     * Generated from protobuf field <code>repeated .keyapis.banner.v1.Banner.Image images = 16;</code>
     */
    private $images;
    /**
     * Ссылки для переходов.
     * # Диапазон: 0..100
     *
     * Generated from protobuf field <code>repeated .keyapis.banner.v1.Banner.Link links = 17;</code>
     */
    private $links;
    /**
     * Список тегов пользователей.
     * Обязательное.
     * Описывает кто может видеть баннер.
     * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     * # Диапазон: 1..100.
     * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *
     * Generated from protobuf field <code>repeated string user_tags = 18 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private $user_tags;
    /**
     * Список тегов приложений.
     * Обязательное.
     * Описывает какие клиенты могут видеть баннер.
     * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     * # Диапазон: 1..20.
     * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *
     * Generated from protobuf field <code>repeated string app_tags = 19 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private $app_tags;
    /**
     * Дата создания.
     * # Тип: DateTime
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp created_at = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $created_at = null;
    /**
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта.
     * # Тип: DateTime
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp changed_at = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $changed_at = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $id
     *           Идентификатор.
     *           Если не передан создаётся сервером.
     *           # Тип: Guid
     *     @type int $type
     *           Тип баннера.
     *           Обязательное
     *     @type int $priority
     *           Приоритет.
     *           Обязательное.
     *           # Диапазон: 1..255
     *     @type int $priority_type
     *           Тип приоритета.
     *           # Поле вычисляется в коде приложения
     *     @type string $title
     *           Название.
     *           Обязательное.
     *           Обычно это название рекламной компании.
     *           Не отображается пользователям.
     *           # Диапазон: 3..256
     *     @type \Google\Protobuf\StringValue $header
     *           Заголовок.
     *           # Диапазон: 3..64
     *     @type \Google\Protobuf\StringValue $header_color
     *           Цвет текста заголовка.
     *           Все цвета должны быть в формате hex #RRGGBBAA.
     *           Пример: #7e00c380.
     *           # Диапазон: 9..9.
     *           # Паттерн: /^#[0-9a-fA-F]{8}$/
     *     @type \Google\Protobuf\StringValue $subtitle
     *           Подзаголовок.
     *           # Диапазон: 3..256
     *     @type \Google\Protobuf\StringValue $subtitle_color
     *           Цвет текста подзаголовка.
     *           Все цвета должны быть в формате hex #RRGGBBAA.
     *           Пример: #7e00c380.
     *           # Диапазон: 9..9.
     *           # Паттерн: /^#[0-9a-fA-F]{8}$/
     *     @type \Google\Protobuf\StringValue $background_color
     *           Цвет заднего плана(подложки).
     *           Отрисовывается до загрузки картинки и градиента.
     *           Все цвета должны быть в формате hex #RRGGBBAA.
     *           Пример: #7e00c380.
     *           # Диапазон: 9..9.
     *           # Паттерн: /^#[0-9a-fA-F]{8}$/
     *     @type \Keyapis\Banner\V1\Banner\Gradient $background_gradient
     *           Градиент
     *     @type \Google\Protobuf\Int32Value $repeat_after_days
     *           Количество дней через которое можно повторно показать баннер.
     *           Если null, то закрыть нельзя, баннер повторно выводится каждый раз.
     *           # Диапазон: 0..366
     *     @type \Google\Protobuf\Timestamp $show_start_at
     *           Дата начала показа.
     *           Обязательное.
     *           Бессрочно если значение 2000-01-01.
     *           # Тип: DateOnly.
     *           # Диапазон: 730119..1095362
     *     @type \Google\Protobuf\Timestamp $show_ended_at
     *           Дата конца показа.
     *           Обязательное.
     *           Бессрочно если значение 3000-01-01.
     *           # Тип: DateOnly.
     *           # Диапазон: 730119..1095362
     *     @type int $status_type
     *           Статус баннера.
     *           # Поле вычисляется в коде приложения
     *     @type array<\Keyapis\Banner\V1\Banner\Image>|\Google\Protobuf\Internal\RepeatedField $images
     *           Картинки.
     *           # Диапазон: 0..20
     *     @type array<\Keyapis\Banner\V1\Banner\Link>|\Google\Protobuf\Internal\RepeatedField $links
     *           Ссылки для переходов.
     *           # Диапазон: 0..100
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $user_tags
     *           Список тегов пользователей.
     *           Обязательное.
     *           Описывает кто может видеть баннер.
     *           Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     *           # Диапазон: 1..100.
     *           # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $app_tags
     *           Список тегов приложений.
     *           Обязательное.
     *           Описывает какие клиенты могут видеть баннер.
     *           Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     *           # Диапазон: 1..20.
     *           # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *     @type \Google\Protobuf\Timestamp $created_at
     *           Дата создания.
     *           # Тип: DateTime
     *     @type \Google\Protobuf\Timestamp $changed_at
     *           Дата последнего изменения.
     *           Заполняется и обновляется сервером.
     *           Заполняется при создании и изменении.
     *           Является версией объекта.
     *           # Тип: DateTime
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Keyapis\Banner\V1\KeyapisBannerBannerV1::initOnce();
        parent::__construct($data);
    }

    /**
     * Идентификатор.
     * Если не передан создаётся сервером.
     * # Тип: Guid
     *
     * Generated from protobuf field <code>string id = 1;</code>
     * @return string
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Идентификатор.
     * Если не передан создаётся сервером.
     * # Тип: Guid
     *
     * Generated from protobuf field <code>string id = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setId($var)
    {
        GPBUtil::checkString($var, True);
        $this->id = $var;

        return $this;
    }

    /**
     * Тип баннера.
     * Обязательное
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.Type type = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return int
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * Тип баннера.
     * Обязательное
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.Type type = 2 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param int $var
     * @return $this
     */
    public function setType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Banner\V1\Banner\Type::class);
        $this->type = $var;

        return $this;
    }

    /**
     * Приоритет.
     * Обязательное.
     * # Диапазон: 1..255
     *
     * Generated from protobuf field <code>int32 priority = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return int
     */
    public function getPriority()
    {
        return $this->priority;
    }

    /**
     * Приоритет.
     * Обязательное.
     * # Диапазон: 1..255
     *
     * Generated from protobuf field <code>int32 priority = 3 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param int $var
     * @return $this
     */
    public function setPriority($var)
    {
        GPBUtil::checkInt32($var);
        $this->priority = $var;

        return $this;
    }

    /**
     * Тип приоритета.
     * # Поле вычисляется в коде приложения
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.PriorityType priority_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getPriorityType()
    {
        return $this->priority_type;
    }

    /**
     * Тип приоритета.
     * # Поле вычисляется в коде приложения
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.PriorityType priority_type = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setPriorityType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Banner\V1\Banner\PriorityType::class);
        $this->priority_type = $var;

        return $this;
    }

    /**
     * Название.
     * Обязательное.
     * Обычно это название рекламной компании.
     * Не отображается пользователям.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>string title = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return string
     */
    public function getTitle()
    {
        return $this->title;
    }

    /**
     * Название.
     * Обязательное.
     * Обычно это название рекламной компании.
     * Не отображается пользователям.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>string title = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param string $var
     * @return $this
     */
    public function setTitle($var)
    {
        GPBUtil::checkString($var, True);
        $this->title = $var;

        return $this;
    }

    /**
     * Заголовок.
     * # Диапазон: 3..64
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header = 6;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getHeader()
    {
        return $this->header;
    }

    public function hasHeader()
    {
        return isset($this->header);
    }

    public function clearHeader()
    {
        unset($this->header);
    }

    /**
     * Returns the unboxed value from <code>getHeader()</code>

     * Заголовок.
     * # Диапазон: 3..64
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header = 6;</code>
     * @return string|null
     */
    public function getHeaderUnwrapped()
    {
        return $this->readWrapperValue("header");
    }

    /**
     * Заголовок.
     * # Диапазон: 3..64
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header = 6;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setHeader($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->header = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Заголовок.
     * # Диапазон: 3..64
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header = 6;</code>
     * @param string|null $var
     * @return $this
     */
    public function setHeaderUnwrapped($var)
    {
        $this->writeWrapperValue("header", $var);
        return $this;}

    /**
     * Цвет текста заголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header_color = 7;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getHeaderColor()
    {
        return $this->header_color;
    }

    public function hasHeaderColor()
    {
        return isset($this->header_color);
    }

    public function clearHeaderColor()
    {
        unset($this->header_color);
    }

    /**
     * Returns the unboxed value from <code>getHeaderColor()</code>

     * Цвет текста заголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header_color = 7;</code>
     * @return string|null
     */
    public function getHeaderColorUnwrapped()
    {
        return $this->readWrapperValue("header_color");
    }

    /**
     * Цвет текста заголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header_color = 7;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setHeaderColor($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->header_color = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Цвет текста заголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue header_color = 7;</code>
     * @param string|null $var
     * @return $this
     */
    public function setHeaderColorUnwrapped($var)
    {
        $this->writeWrapperValue("header_color", $var);
        return $this;}

    /**
     * Подзаголовок.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle = 8;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getSubtitle()
    {
        return $this->subtitle;
    }

    public function hasSubtitle()
    {
        return isset($this->subtitle);
    }

    public function clearSubtitle()
    {
        unset($this->subtitle);
    }

    /**
     * Returns the unboxed value from <code>getSubtitle()</code>

     * Подзаголовок.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle = 8;</code>
     * @return string|null
     */
    public function getSubtitleUnwrapped()
    {
        return $this->readWrapperValue("subtitle");
    }

    /**
     * Подзаголовок.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle = 8;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setSubtitle($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->subtitle = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Подзаголовок.
     * # Диапазон: 3..256
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle = 8;</code>
     * @param string|null $var
     * @return $this
     */
    public function setSubtitleUnwrapped($var)
    {
        $this->writeWrapperValue("subtitle", $var);
        return $this;}

    /**
     * Цвет текста подзаголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle_color = 9;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getSubtitleColor()
    {
        return $this->subtitle_color;
    }

    public function hasSubtitleColor()
    {
        return isset($this->subtitle_color);
    }

    public function clearSubtitleColor()
    {
        unset($this->subtitle_color);
    }

    /**
     * Returns the unboxed value from <code>getSubtitleColor()</code>

     * Цвет текста подзаголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle_color = 9;</code>
     * @return string|null
     */
    public function getSubtitleColorUnwrapped()
    {
        return $this->readWrapperValue("subtitle_color");
    }

    /**
     * Цвет текста подзаголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle_color = 9;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setSubtitleColor($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->subtitle_color = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Цвет текста подзаголовка.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue subtitle_color = 9;</code>
     * @param string|null $var
     * @return $this
     */
    public function setSubtitleColorUnwrapped($var)
    {
        $this->writeWrapperValue("subtitle_color", $var);
        return $this;}

    /**
     * Цвет заднего плана(подложки).
     * Отрисовывается до загрузки картинки и градиента.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue background_color = 10;</code>
     * @return \Google\Protobuf\StringValue|null
     */
    public function getBackgroundColor()
    {
        return $this->background_color;
    }

    public function hasBackgroundColor()
    {
        return isset($this->background_color);
    }

    public function clearBackgroundColor()
    {
        unset($this->background_color);
    }

    /**
     * Returns the unboxed value from <code>getBackgroundColor()</code>

     * Цвет заднего плана(подложки).
     * Отрисовывается до загрузки картинки и градиента.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue background_color = 10;</code>
     * @return string|null
     */
    public function getBackgroundColorUnwrapped()
    {
        return $this->readWrapperValue("background_color");
    }

    /**
     * Цвет заднего плана(подложки).
     * Отрисовывается до загрузки картинки и градиента.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue background_color = 10;</code>
     * @param \Google\Protobuf\StringValue $var
     * @return $this
     */
    public function setBackgroundColor($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class);
        $this->background_color = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object.

     * Цвет заднего плана(подложки).
     * Отрисовывается до загрузки картинки и градиента.
     * Все цвета должны быть в формате hex #RRGGBBAA.
     * Пример: #7e00c380.
     * # Диапазон: 9..9.
     * # Паттерн: /^#[0-9a-fA-F]{8}$/
     *
     * Generated from protobuf field <code>.google.protobuf.StringValue background_color = 10;</code>
     * @param string|null $var
     * @return $this
     */
    public function setBackgroundColorUnwrapped($var)
    {
        $this->writeWrapperValue("background_color", $var);
        return $this;}

    /**
     * Градиент
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.Gradient background_gradient = 11;</code>
     * @return \Keyapis\Banner\V1\Banner\Gradient|null
     */
    public function getBackgroundGradient()
    {
        return $this->background_gradient;
    }

    public function hasBackgroundGradient()
    {
        return isset($this->background_gradient);
    }

    public function clearBackgroundGradient()
    {
        unset($this->background_gradient);
    }

    /**
     * Градиент
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.Gradient background_gradient = 11;</code>
     * @param \Keyapis\Banner\V1\Banner\Gradient $var
     * @return $this
     */
    public function setBackgroundGradient($var)
    {
        GPBUtil::checkMessage($var, \Keyapis\Banner\V1\Banner\Gradient::class);
        $this->background_gradient = $var;

        return $this;
    }

    /**
     * Количество дней через которое можно повторно показать баннер.
     * Если null, то закрыть нельзя, баннер повторно выводится каждый раз.
     * # Диапазон: 0..366
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value repeat_after_days = 12;</code>
     * @return \Google\Protobuf\Int32Value|null
     */
    public function getRepeatAfterDays()
    {
        return $this->repeat_after_days;
    }

    public function hasRepeatAfterDays()
    {
        return isset($this->repeat_after_days);
    }

    public function clearRepeatAfterDays()
    {
        unset($this->repeat_after_days);
    }

    /**
     * Returns the unboxed value from <code>getRepeatAfterDays()</code>

     * Количество дней через которое можно повторно показать баннер.
     * Если null, то закрыть нельзя, баннер повторно выводится каждый раз.
     * # Диапазон: 0..366
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value repeat_after_days = 12;</code>
     * @return int|null
     */
    public function getRepeatAfterDaysUnwrapped()
    {
        return $this->readWrapperValue("repeat_after_days");
    }

    /**
     * Количество дней через которое можно повторно показать баннер.
     * Если null, то закрыть нельзя, баннер повторно выводится каждый раз.
     * # Диапазон: 0..366
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value repeat_after_days = 12;</code>
     * @param \Google\Protobuf\Int32Value $var
     * @return $this
     */
    public function setRepeatAfterDays($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Int32Value::class);
        $this->repeat_after_days = $var;

        return $this;
    }

    /**
     * Sets the field by wrapping a primitive type in a Google\Protobuf\Int32Value object.

     * Количество дней через которое можно повторно показать баннер.
     * Если null, то закрыть нельзя, баннер повторно выводится каждый раз.
     * # Диапазон: 0..366
     *
     * Generated from protobuf field <code>.google.protobuf.Int32Value repeat_after_days = 12;</code>
     * @param int|null $var
     * @return $this
     */
    public function setRepeatAfterDaysUnwrapped($var)
    {
        $this->writeWrapperValue("repeat_after_days", $var);
        return $this;}

    /**
     * Дата начала показа.
     * Обязательное.
     * Бессрочно если значение 2000-01-01.
     * # Тип: DateOnly.
     * # Диапазон: 730119..1095362
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp show_start_at = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getShowStartAt()
    {
        return $this->show_start_at;
    }

    public function hasShowStartAt()
    {
        return isset($this->show_start_at);
    }

    public function clearShowStartAt()
    {
        unset($this->show_start_at);
    }

    /**
     * Дата начала показа.
     * Обязательное.
     * Бессрочно если значение 2000-01-01.
     * # Тип: DateOnly.
     * # Диапазон: 730119..1095362
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp show_start_at = 13 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setShowStartAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->show_start_at = $var;

        return $this;
    }

    /**
     * Дата конца показа.
     * Обязательное.
     * Бессрочно если значение 3000-01-01.
     * # Тип: DateOnly.
     * # Диапазон: 730119..1095362
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp show_ended_at = 14 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getShowEndedAt()
    {
        return $this->show_ended_at;
    }

    public function hasShowEndedAt()
    {
        return isset($this->show_ended_at);
    }

    public function clearShowEndedAt()
    {
        unset($this->show_ended_at);
    }

    /**
     * Дата конца показа.
     * Обязательное.
     * Бессрочно если значение 3000-01-01.
     * # Тип: DateOnly.
     * # Диапазон: 730119..1095362
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp show_ended_at = 14 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setShowEndedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->show_ended_at = $var;

        return $this;
    }

    /**
     * Статус баннера.
     * # Поле вычисляется в коде приложения
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.StatusType status_type = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return int
     */
    public function getStatusType()
    {
        return $this->status_type;
    }

    /**
     * Статус баннера.
     * # Поле вычисляется в коде приложения
     *
     * Generated from protobuf field <code>.keyapis.banner.v1.Banner.StatusType status_type = 15 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param int $var
     * @return $this
     */
    public function setStatusType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Banner\V1\Banner\StatusType::class);
        $this->status_type = $var;

        return $this;
    }

    /**
     * Картинки.
     * # Диапазон: 0..20
     *
     * Generated from protobuf field <code>repeated .keyapis.banner.v1.Banner.Image images = 16;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getImages()
    {
        return $this->images;
    }

    /**
     * Картинки.
     * # Диапазон: 0..20
     *
     * Generated from protobuf field <code>repeated .keyapis.banner.v1.Banner.Image images = 16;</code>
     * @param array<\Keyapis\Banner\V1\Banner\Image>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setImages($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Keyapis\Banner\V1\Banner\Image::class);
        $this->images = $arr;

        return $this;
    }

    /**
     * Ссылки для переходов.
     * # Диапазон: 0..100
     *
     * Generated from protobuf field <code>repeated .keyapis.banner.v1.Banner.Link links = 17;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getLinks()
    {
        return $this->links;
    }

    /**
     * Ссылки для переходов.
     * # Диапазон: 0..100
     *
     * Generated from protobuf field <code>repeated .keyapis.banner.v1.Banner.Link links = 17;</code>
     * @param array<\Keyapis\Banner\V1\Banner\Link>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setLinks($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Keyapis\Banner\V1\Banner\Link::class);
        $this->links = $arr;

        return $this;
    }

    /**
     * Список тегов пользователей.
     * Обязательное.
     * Описывает кто может видеть баннер.
     * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     * # Диапазон: 1..100.
     * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *
     * Generated from protobuf field <code>repeated string user_tags = 18 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getUserTags()
    {
        return $this->user_tags;
    }

    /**
     * Список тегов пользователей.
     * Обязательное.
     * Описывает кто может видеть баннер.
     * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     * # Диапазон: 1..100.
     * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *
     * Generated from protobuf field <code>repeated string user_tags = 18 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setUserTags($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->user_tags = $arr;

        return $this;
    }

    /**
     * Список тегов приложений.
     * Обязательное.
     * Описывает какие клиенты могут видеть баннер.
     * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     * # Диапазон: 1..20.
     * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *
     * Generated from protobuf field <code>repeated string app_tags = 19 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getAppTags()
    {
        return $this->app_tags;
    }

    /**
     * Список тегов приложений.
     * Обязательное.
     * Описывает какие клиенты могут видеть баннер.
     * Тэг - максимум 5 символов, значение - максимум 19 символов, количество сегментов - максимум 10.
     * # Диапазон: 1..20.
     * # Паттерн: /^[A-Z-]{1,5}_[0-9A-Z-]{1,19}(?:\.[A-Z-]{1,5}_[0-9A-Z-]{1,19}){0,9}$/
     *
     * Generated from protobuf field <code>repeated string app_tags = 19 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setAppTags($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->app_tags = $arr;

        return $this;
    }

    /**
     * Дата создания.
     * # Тип: DateTime
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp created_at = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getCreatedAt()
    {
        return $this->created_at;
    }

    public function hasCreatedAt()
    {
        return isset($this->created_at);
    }

    public function clearCreatedAt()
    {
        unset($this->created_at);
    }

    /**
     * Дата создания.
     * # Тип: DateTime
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp created_at = 20 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setCreatedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->created_at = $var;

        return $this;
    }

    /**
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта.
     * # Тип: DateTime
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp changed_at = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getChangedAt()
    {
        return $this->changed_at;
    }

    public function hasChangedAt()
    {
        return isset($this->changed_at);
    }

    public function clearChangedAt()
    {
        unset($this->changed_at);
    }

    /**
     * Дата последнего изменения.
     * Заполняется и обновляется сервером.
     * Заполняется при создании и изменении.
     * Является версией объекта.
     * # Тип: DateTime
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp changed_at = 21 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setChangedAt($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->changed_at = $var;

        return $this;
    }

}

