<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto

namespace Google\Ads\MarketingPlatform\Admin\V1alpha\ReportPropertyUsageResponse;

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

/**
 * Contains the count of events received by the property, along with metadata
 * that influences the volume of `billable` events.
 *
 * Generated from protobuf message <code>google.marketingplatform.admin.v1alpha.ReportPropertyUsageResponse.PropertyUsage</code>
 */
class PropertyUsage extends \Google\Protobuf\Internal\Message
{
    /**
     * The name of the Google Analytics Admin API property resource.
     * Format: analyticsadmin.googleapis.com/properties/{property_id}
     *
     * Generated from protobuf field <code>string property = 1;</code>
     */
    protected $property = '';
    /**
     * The display name of the property.
     *
     * Generated from protobuf field <code>string display_name = 2;</code>
     */
    protected $display_name = '';
    /**
     * The ID of the property's parent account.
     *
     * Generated from protobuf field <code>int64 account_id = 3;</code>
     */
    protected $account_id = 0;
    /**
     * The service level of the property.
     *
     * Generated from protobuf field <code>.google.marketingplatform.admin.v1alpha.AnalyticsServiceLevel service_level = 4;</code>
     */
    protected $service_level = 0;
    /**
     * The subtype of the analytics property. This affects the billable event
     * count.
     *
     * Generated from protobuf field <code>.google.marketingplatform.admin.v1alpha.AnalyticsPropertyType property_type = 5;</code>
     */
    protected $property_type = 0;
    /**
     * Total event count that the property received during the requested month.
     *
     * Generated from protobuf field <code>int64 total_event_count = 6;</code>
     */
    protected $total_event_count = 0;
    /**
     * The number of events for which the property is billed in the requested
     * month.
     *
     * Generated from protobuf field <code>int64 billable_event_count = 7;</code>
     */
    protected $billable_event_count = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $property
     *           The name of the Google Analytics Admin API property resource.
     *           Format: analyticsadmin.googleapis.com/properties/{property_id}
     *     @type string $display_name
     *           The display name of the property.
     *     @type int|string $account_id
     *           The ID of the property's parent account.
     *     @type int $service_level
     *           The service level of the property.
     *     @type int $property_type
     *           The subtype of the analytics property. This affects the billable event
     *           count.
     *     @type int|string $total_event_count
     *           Total event count that the property received during the requested month.
     *     @type int|string $billable_event_count
     *           The number of events for which the property is billed in the requested
     *           month.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
        parent::__construct($data);
    }

    /**
     * The name of the Google Analytics Admin API property resource.
     * Format: analyticsadmin.googleapis.com/properties/{property_id}
     *
     * Generated from protobuf field <code>string property = 1;</code>
     * @return string
     */
    public function getProperty()
    {
        return $this->property;
    }

    /**
     * The name of the Google Analytics Admin API property resource.
     * Format: analyticsadmin.googleapis.com/properties/{property_id}
     *
     * Generated from protobuf field <code>string property = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setProperty($var)
    {
        GPBUtil::checkString($var, True);
        $this->property = $var;

        return $this;
    }

    /**
     * The display name of the property.
     *
     * Generated from protobuf field <code>string display_name = 2;</code>
     * @return string
     */
    public function getDisplayName()
    {
        return $this->display_name;
    }

    /**
     * The display name of the property.
     *
     * Generated from protobuf field <code>string display_name = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setDisplayName($var)
    {
        GPBUtil::checkString($var, True);
        $this->display_name = $var;

        return $this;
    }

    /**
     * The ID of the property's parent account.
     *
     * Generated from protobuf field <code>int64 account_id = 3;</code>
     * @return int|string
     */
    public function getAccountId()
    {
        return $this->account_id;
    }

    /**
     * The ID of the property's parent account.
     *
     * Generated from protobuf field <code>int64 account_id = 3;</code>
     * @param int|string $var
     * @return $this
     */
    public function setAccountId($var)
    {
        GPBUtil::checkInt64($var);
        $this->account_id = $var;

        return $this;
    }

    /**
     * The service level of the property.
     *
     * Generated from protobuf field <code>.google.marketingplatform.admin.v1alpha.AnalyticsServiceLevel service_level = 4;</code>
     * @return int
     */
    public function getServiceLevel()
    {
        return $this->service_level;
    }

    /**
     * The service level of the property.
     *
     * Generated from protobuf field <code>.google.marketingplatform.admin.v1alpha.AnalyticsServiceLevel service_level = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setServiceLevel($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsServiceLevel::class);
        $this->service_level = $var;

        return $this;
    }

    /**
     * The subtype of the analytics property. This affects the billable event
     * count.
     *
     * Generated from protobuf field <code>.google.marketingplatform.admin.v1alpha.AnalyticsPropertyType property_type = 5;</code>
     * @return int
     */
    public function getPropertyType()
    {
        return $this->property_type;
    }

    /**
     * The subtype of the analytics property. This affects the billable event
     * count.
     *
     * Generated from protobuf field <code>.google.marketingplatform.admin.v1alpha.AnalyticsPropertyType property_type = 5;</code>
     * @param int $var
     * @return $this
     */
    public function setPropertyType($var)
    {
        GPBUtil::checkEnum($var, \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsPropertyType::class);
        $this->property_type = $var;

        return $this;
    }

    /**
     * Total event count that the property received during the requested month.
     *
     * Generated from protobuf field <code>int64 total_event_count = 6;</code>
     * @return int|string
     */
    public function getTotalEventCount()
    {
        return $this->total_event_count;
    }

    /**
     * Total event count that the property received during the requested month.
     *
     * Generated from protobuf field <code>int64 total_event_count = 6;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTotalEventCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->total_event_count = $var;

        return $this;
    }

    /**
     * The number of events for which the property is billed in the requested
     * month.
     *
     * Generated from protobuf field <code>int64 billable_event_count = 7;</code>
     * @return int|string
     */
    public function getBillableEventCount()
    {
        return $this->billable_event_count;
    }

    /**
     * The number of events for which the property is billed in the requested
     * month.
     *
     * Generated from protobuf field <code>int64 billable_event_count = 7;</code>
     * @param int|string $var
     * @return $this
     */
    public function setBillableEventCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->billable_event_count = $var;

        return $this;
    }

}

