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

namespace Google\Ads\GoogleAds\V23\Errors;

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

/**
 * Error details for a budget below per-day minimum error.
 *
 * Generated from protobuf message <code>google.ads.googleads.v23.errors.BudgetPerDayMinimumErrorDetails</code>
 */
class BudgetPerDayMinimumErrorDetails extends \Google\Protobuf\Internal\Message
{
    /**
     * The advertiser's currency, represented as a three-letter ISO 4217 currency
     * code (such as "USD").
     *
     * Generated from protobuf field <code>string currency_code = 1;</code>
     */
    protected $currency_code = '';
    /**
     * The minimum budget required by the campaign per day, in micros of the
     * advertiser currency. Applies to both daily and custom budgets.
     *
     * Generated from protobuf field <code>int64 budget_per_day_minimum_micros = 2;</code>
     */
    protected $budget_per_day_minimum_micros = 0;
    /**
     * The minimum value for the budget's amount field required by the campaign,
     * in micros of the advertiser currency. Only set if this error is caused by
     * the amount field value.
     *
     * Generated from protobuf field <code>int64 minimum_budget_amount_micros = 3;</code>
     */
    protected $minimum_budget_amount_micros = 0;
    /**
     * The minimum value for the budget's total_amount field required by the
     * campaign given its configured start and end time, in micros of the
     * advertiser currency. Only set if this error is caused by the total_amount
     * field value.
     *
     * Generated from protobuf field <code>int64 minimum_budget_total_amount_micros = 4;</code>
     */
    protected $minimum_budget_total_amount_micros = 0;
    /**
     * The budget amount value that was rejected as too low, in micros of the
     * advertiser currency. Only set if this error is caused by the amount field
     * value.
     *
     * Generated from protobuf field <code>int64 failed_budget_amount_micros = 5;</code>
     */
    protected $failed_budget_amount_micros = 0;
    /**
     * The budget total_amount value that was rejected as too low, in micros of
     * the advertiser currency. Only set if this error is caused by the
     * total_amount field value.
     *
     * Generated from protobuf field <code>int64 failed_budget_total_amount_micros = 6;</code>
     */
    protected $failed_budget_total_amount_micros = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $currency_code
     *           The advertiser's currency, represented as a three-letter ISO 4217 currency
     *           code (such as "USD").
     *     @type int|string $budget_per_day_minimum_micros
     *           The minimum budget required by the campaign per day, in micros of the
     *           advertiser currency. Applies to both daily and custom budgets.
     *     @type int|string $minimum_budget_amount_micros
     *           The minimum value for the budget's amount field required by the campaign,
     *           in micros of the advertiser currency. Only set if this error is caused by
     *           the amount field value.
     *     @type int|string $minimum_budget_total_amount_micros
     *           The minimum value for the budget's total_amount field required by the
     *           campaign given its configured start and end time, in micros of the
     *           advertiser currency. Only set if this error is caused by the total_amount
     *           field value.
     *     @type int|string $failed_budget_amount_micros
     *           The budget amount value that was rejected as too low, in micros of the
     *           advertiser currency. Only set if this error is caused by the amount field
     *           value.
     *     @type int|string $failed_budget_total_amount_micros
     *           The budget total_amount value that was rejected as too low, in micros of
     *           the advertiser currency. Only set if this error is caused by the
     *           total_amount field value.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Ads\GoogleAds\V23\Errors\Errors::initOnce();
        parent::__construct($data);
    }

    /**
     * The advertiser's currency, represented as a three-letter ISO 4217 currency
     * code (such as "USD").
     *
     * Generated from protobuf field <code>string currency_code = 1;</code>
     * @return string
     */
    public function getCurrencyCode()
    {
        return $this->currency_code;
    }

    /**
     * The advertiser's currency, represented as a three-letter ISO 4217 currency
     * code (such as "USD").
     *
     * Generated from protobuf field <code>string currency_code = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setCurrencyCode($var)
    {
        GPBUtil::checkString($var, True);
        $this->currency_code = $var;

        return $this;
    }

    /**
     * The minimum budget required by the campaign per day, in micros of the
     * advertiser currency. Applies to both daily and custom budgets.
     *
     * Generated from protobuf field <code>int64 budget_per_day_minimum_micros = 2;</code>
     * @return int|string
     */
    public function getBudgetPerDayMinimumMicros()
    {
        return $this->budget_per_day_minimum_micros;
    }

    /**
     * The minimum budget required by the campaign per day, in micros of the
     * advertiser currency. Applies to both daily and custom budgets.
     *
     * Generated from protobuf field <code>int64 budget_per_day_minimum_micros = 2;</code>
     * @param int|string $var
     * @return $this
     */
    public function setBudgetPerDayMinimumMicros($var)
    {
        GPBUtil::checkInt64($var);
        $this->budget_per_day_minimum_micros = $var;

        return $this;
    }

    /**
     * The minimum value for the budget's amount field required by the campaign,
     * in micros of the advertiser currency. Only set if this error is caused by
     * the amount field value.
     *
     * Generated from protobuf field <code>int64 minimum_budget_amount_micros = 3;</code>
     * @return int|string
     */
    public function getMinimumBudgetAmountMicros()
    {
        return $this->minimum_budget_amount_micros;
    }

    /**
     * The minimum value for the budget's amount field required by the campaign,
     * in micros of the advertiser currency. Only set if this error is caused by
     * the amount field value.
     *
     * Generated from protobuf field <code>int64 minimum_budget_amount_micros = 3;</code>
     * @param int|string $var
     * @return $this
     */
    public function setMinimumBudgetAmountMicros($var)
    {
        GPBUtil::checkInt64($var);
        $this->minimum_budget_amount_micros = $var;

        return $this;
    }

    /**
     * The minimum value for the budget's total_amount field required by the
     * campaign given its configured start and end time, in micros of the
     * advertiser currency. Only set if this error is caused by the total_amount
     * field value.
     *
     * Generated from protobuf field <code>int64 minimum_budget_total_amount_micros = 4;</code>
     * @return int|string
     */
    public function getMinimumBudgetTotalAmountMicros()
    {
        return $this->minimum_budget_total_amount_micros;
    }

    /**
     * The minimum value for the budget's total_amount field required by the
     * campaign given its configured start and end time, in micros of the
     * advertiser currency. Only set if this error is caused by the total_amount
     * field value.
     *
     * Generated from protobuf field <code>int64 minimum_budget_total_amount_micros = 4;</code>
     * @param int|string $var
     * @return $this
     */
    public function setMinimumBudgetTotalAmountMicros($var)
    {
        GPBUtil::checkInt64($var);
        $this->minimum_budget_total_amount_micros = $var;

        return $this;
    }

    /**
     * The budget amount value that was rejected as too low, in micros of the
     * advertiser currency. Only set if this error is caused by the amount field
     * value.
     *
     * Generated from protobuf field <code>int64 failed_budget_amount_micros = 5;</code>
     * @return int|string
     */
    public function getFailedBudgetAmountMicros()
    {
        return $this->failed_budget_amount_micros;
    }

    /**
     * The budget amount value that was rejected as too low, in micros of the
     * advertiser currency. Only set if this error is caused by the amount field
     * value.
     *
     * Generated from protobuf field <code>int64 failed_budget_amount_micros = 5;</code>
     * @param int|string $var
     * @return $this
     */
    public function setFailedBudgetAmountMicros($var)
    {
        GPBUtil::checkInt64($var);
        $this->failed_budget_amount_micros = $var;

        return $this;
    }

    /**
     * The budget total_amount value that was rejected as too low, in micros of
     * the advertiser currency. Only set if this error is caused by the
     * total_amount field value.
     *
     * Generated from protobuf field <code>int64 failed_budget_total_amount_micros = 6;</code>
     * @return int|string
     */
    public function getFailedBudgetTotalAmountMicros()
    {
        return $this->failed_budget_total_amount_micros;
    }

    /**
     * The budget total_amount value that was rejected as too low, in micros of
     * the advertiser currency. Only set if this error is caused by the
     * total_amount field value.
     *
     * Generated from protobuf field <code>int64 failed_budget_total_amount_micros = 6;</code>
     * @param int|string $var
     * @return $this
     */
    public function setFailedBudgetTotalAmountMicros($var)
    {
        GPBUtil::checkInt64($var);
        $this->failed_budget_total_amount_micros = $var;

        return $this;
    }

}

