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

namespace Google\Apps\Card\V1;

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

/**
 * A [Google Material Icon](https://fonts.google.com/icons), which includes over
 * 2500+ options.
 * For example, to display a [checkbox
 * icon](https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck_box%3AFILL%400%3Bwght%40400%3BGRAD%400%3Bopsz%4048)
 * with customized weight and grade, write the following:
 * ```
 * {
 *   "name": "check_box",
 *   "fill": true,
 *   "weight": 300,
 *   "grade": -25
 * }
 * ```
 * [Google Chat apps](https://developers.google.com/workspace/chat):
 *
 * Generated from protobuf message <code>google.apps.card.v1.MaterialIcon</code>
 */
class MaterialIcon extends \Google\Protobuf\Internal\Message
{
    /**
     * The icon name defined in the [Google Material
     * Icon](https://fonts.google.com/icons), for example, `check_box`. Any
     * invalid names are abandoned and replaced with empty string and
     * results in the icon failing to render.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     */
    protected $name = '';
    /**
     * Whether the icon renders as filled. Default value is false.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>bool fill = 2;</code>
     */
    protected $fill = false;
    /**
     * The stroke weight of the icon. Choose from {100, 200, 300, 400,
     * 500, 600, 700}. If absent, default value is 400. If any other value is
     * specified, the default value is used.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>int32 weight = 3;</code>
     */
    protected $weight = 0;
    /**
     * Weight and grade affect a symbol’s thickness. Adjustments to grade are more
     * granular than adjustments to weight and have a small impact on the size of
     * the symbol. Choose from {-25, 0, 200}. If absent, default value is 0. If
     * any other value is specified, the default value is used.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>int32 grade = 4;</code>
     */
    protected $grade = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           The icon name defined in the [Google Material
     *           Icon](https://fonts.google.com/icons), for example, `check_box`. Any
     *           invalid names are abandoned and replaced with empty string and
     *           results in the icon failing to render.
     *     @type bool $fill
     *           Whether the icon renders as filled. Default value is false.
     *           To preview different icon settings, go to
     *           [Google Font Icons](https://fonts.google.com/icons) and adjust the
     *           settings under **Customize**.
     *     @type int $weight
     *           The stroke weight of the icon. Choose from {100, 200, 300, 400,
     *           500, 600, 700}. If absent, default value is 400. If any other value is
     *           specified, the default value is used.
     *           To preview different icon settings, go to
     *           [Google Font Icons](https://fonts.google.com/icons) and adjust the
     *           settings under **Customize**.
     *     @type int $grade
     *           Weight and grade affect a symbol’s thickness. Adjustments to grade are more
     *           granular than adjustments to weight and have a small impact on the size of
     *           the symbol. Choose from {-25, 0, 200}. If absent, default value is 0. If
     *           any other value is specified, the default value is used.
     *           To preview different icon settings, go to
     *           [Google Font Icons](https://fonts.google.com/icons) and adjust the
     *           settings under **Customize**.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Apps\Card\V1\Card::initOnce();
        parent::__construct($data);
    }

    /**
     * The icon name defined in the [Google Material
     * Icon](https://fonts.google.com/icons), for example, `check_box`. Any
     * invalid names are abandoned and replaced with empty string and
     * results in the icon failing to render.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * The icon name defined in the [Google Material
     * Icon](https://fonts.google.com/icons), for example, `check_box`. Any
     * invalid names are abandoned and replaced with empty string and
     * results in the icon failing to render.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

    /**
     * Whether the icon renders as filled. Default value is false.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>bool fill = 2;</code>
     * @return bool
     */
    public function getFill()
    {
        return $this->fill;
    }

    /**
     * Whether the icon renders as filled. Default value is false.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>bool fill = 2;</code>
     * @param bool $var
     * @return $this
     */
    public function setFill($var)
    {
        GPBUtil::checkBool($var);
        $this->fill = $var;

        return $this;
    }

    /**
     * The stroke weight of the icon. Choose from {100, 200, 300, 400,
     * 500, 600, 700}. If absent, default value is 400. If any other value is
     * specified, the default value is used.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>int32 weight = 3;</code>
     * @return int
     */
    public function getWeight()
    {
        return $this->weight;
    }

    /**
     * The stroke weight of the icon. Choose from {100, 200, 300, 400,
     * 500, 600, 700}. If absent, default value is 400. If any other value is
     * specified, the default value is used.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>int32 weight = 3;</code>
     * @param int $var
     * @return $this
     */
    public function setWeight($var)
    {
        GPBUtil::checkInt32($var);
        $this->weight = $var;

        return $this;
    }

    /**
     * Weight and grade affect a symbol’s thickness. Adjustments to grade are more
     * granular than adjustments to weight and have a small impact on the size of
     * the symbol. Choose from {-25, 0, 200}. If absent, default value is 0. If
     * any other value is specified, the default value is used.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>int32 grade = 4;</code>
     * @return int
     */
    public function getGrade()
    {
        return $this->grade;
    }

    /**
     * Weight and grade affect a symbol’s thickness. Adjustments to grade are more
     * granular than adjustments to weight and have a small impact on the size of
     * the symbol. Choose from {-25, 0, 200}. If absent, default value is 0. If
     * any other value is specified, the default value is used.
     * To preview different icon settings, go to
     * [Google Font Icons](https://fonts.google.com/icons) and adjust the
     * settings under **Customize**.
     *
     * Generated from protobuf field <code>int32 grade = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setGrade($var)
    {
        GPBUtil::checkInt32($var);
        $this->grade = $var;

        return $this;
    }

}

