<?php

namespace BssOpenApi\Request\V20171214;

/**
 * @deprecated Please use https://github.com/aliyun/openapi-sdk-php
 *
 * Request of QueryBill
 *
 * @method string getProductCode()
 * @method string getIsHideZeroCharge()
 * @method string getIsDisplayLocalCurrency()
 * @method string getSubscriptionType()
 * @method string getBillingCycle()
 * @method string getType()
 * @method string getOwnerId()
 * @method string getPageNum()
 * @method string getProductType()
 * @method string getPageSize()
 */
class QueryBillRequest extends \RpcAcsRequest
{

    /**
     * @var string
     */
    protected $method = 'POST';

    /**
     * Class constructor.
     */
    public function __construct()
    {
        parent::__construct(
            'BssOpenApi',
            '2017-12-14',
            'QueryBill',
            'BssOpenApi'
        );
    }

    /**
     * @param string $productCode
     *
     * @return $this
     */
    public function setProductCode($productCode)
    {
        $this->requestParameters['ProductCode'] = $productCode;
        $this->queryParameters['ProductCode'] = $productCode;

        return $this;
    }

    /**
     * @param string $isHideZeroCharge
     *
     * @return $this
     */
    public function setIsHideZeroCharge($isHideZeroCharge)
    {
        $this->requestParameters['IsHideZeroCharge'] = $isHideZeroCharge;
        $this->queryParameters['IsHideZeroCharge'] = $isHideZeroCharge;

        return $this;
    }

    /**
     * @param string $isDisplayLocalCurrency
     *
     * @return $this
     */
    public function setIsDisplayLocalCurrency($isDisplayLocalCurrency)
    {
        $this->requestParameters['IsDisplayLocalCurrency'] = $isDisplayLocalCurrency;
        $this->queryParameters['IsDisplayLocalCurrency'] = $isDisplayLocalCurrency;

        return $this;
    }

    /**
     * @param string $subscriptionType
     *
     * @return $this
     */
    public function setSubscriptionType($subscriptionType)
    {
        $this->requestParameters['SubscriptionType'] = $subscriptionType;
        $this->queryParameters['SubscriptionType'] = $subscriptionType;

        return $this;
    }

    /**
     * @param string $billingCycle
     *
     * @return $this
     */
    public function setBillingCycle($billingCycle)
    {
        $this->requestParameters['BillingCycle'] = $billingCycle;
        $this->queryParameters['BillingCycle'] = $billingCycle;

        return $this;
    }

    /**
     * @param string $type
     *
     * @return $this
     */
    public function setType($type)
    {
        $this->requestParameters['Type'] = $type;
        $this->queryParameters['Type'] = $type;

        return $this;
    }

    /**
     * @param string $ownerId
     *
     * @return $this
     */
    public function setOwnerId($ownerId)
    {
        $this->requestParameters['OwnerId'] = $ownerId;
        $this->queryParameters['OwnerId'] = $ownerId;

        return $this;
    }

    /**
     * @param string $pageNum
     *
     * @return $this
     */
    public function setPageNum($pageNum)
    {
        $this->requestParameters['PageNum'] = $pageNum;
        $this->queryParameters['PageNum'] = $pageNum;

        return $this;
    }

    /**
     * @param string $productType
     *
     * @return $this
     */
    public function setProductType($productType)
    {
        $this->requestParameters['ProductType'] = $productType;
        $this->queryParameters['ProductType'] = $productType;

        return $this;
    }

    /**
     * @param string $pageSize
     *
     * @return $this
     */
    public function setPageSize($pageSize)
    {
        $this->requestParameters['PageSize'] = $pageSize;
        $this->queryParameters['PageSize'] = $pageSize;

        return $this;
    }
}
