<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/bigtable/admin/v2/bigtable_table_admin.proto

namespace Google\Cloud\Bigtable\Admin\V2;

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

/**
 * The request for
 * [ListBackups][google.bigtable.admin.v2.BigtableTableAdmin.ListBackups].
 *
 * Generated from protobuf message <code>google.bigtable.admin.v2.ListBackupsRequest</code>
 */
class ListBackupsRequest extends \Google\Protobuf\Internal\Message
{
    /**
     * Required. The cluster to list backups from.  Values are of the
     * form `projects/{project}/instances/{instance}/clusters/{cluster}`.
     * Use `{cluster} = '-'` to list backups for all clusters in an instance,
     * e.g., `projects/{project}/instances/{instance}/clusters/-`.
     *
     * Generated from protobuf field <code>string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     */
    protected $parent = '';
    /**
     * A filter expression that filters backups listed in the response.
     * The expression must specify the field name, a comparison operator,
     * and the value that you want to use for filtering. The value must be a
     * string, a number, or a boolean. The comparison operator must be
     * <, >, <=, >=, !=, =, or :. Colon ':' represents a HAS operator which is
     * roughly synonymous with equality. Filter rules are case insensitive.
     * The fields eligible for filtering are:
     * * `name`
     * * `source_table`
     * * `state`
     * * `start_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `end_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `size_bytes`
     * To filter on multiple expressions, provide each separate expression within
     * parentheses. By default, each expression is an AND expression. However,
     * you can include AND, OR, and NOT expressions explicitly.
     * Some examples of using filters are:
     * * `name:"exact"` --> The backup's name is the string "exact".
     * * `name:howl` --> The backup's name contains the string "howl".
     * * `source_table:prod`
     *        --> The source_table's name contains the string "prod".
     * * `state:CREATING` --> The backup is pending creation.
     * * `state:READY` --> The backup is fully created and ready for use.
     * * `(name:howl) AND (start_time < \"2018-03-28T14:50:00Z\")`
     *        --> The backup name contains the string "howl" and start_time
     *            of the backup is before 2018-03-28T14:50:00Z.
     * * `size_bytes > 10000000000` --> The backup's size is greater than 10GB
     *
     * Generated from protobuf field <code>string filter = 2;</code>
     */
    protected $filter = '';
    /**
     * An expression for specifying the sort order of the results of the request.
     * The string value should specify one or more fields in
     * [Backup][google.bigtable.admin.v2.Backup]. The full syntax is described at
     * https://aip.dev/132#ordering.
     * Fields supported are:
     * * name
     * * source_table
     * * expire_time
     * * start_time
     * * end_time
     * * size_bytes
     * * state
     * For example, "start_time". The default sorting order is ascending.
     * To specify descending order for the field, a suffix " desc" should
     * be appended to the field name. For example, "start_time desc".
     * Redundant space characters in the syntax are insigificant.
     * If order_by is empty, results will be sorted by `start_time` in descending
     * order starting from the most recently created backup.
     *
     * Generated from protobuf field <code>string order_by = 3;</code>
     */
    protected $order_by = '';
    /**
     * Number of backups to be returned in the response. If 0 or
     * less, defaults to the server's maximum allowed page size.
     *
     * Generated from protobuf field <code>int32 page_size = 4;</code>
     */
    protected $page_size = 0;
    /**
     * If non-empty, `page_token` should contain a
     * [next_page_token][google.bigtable.admin.v2.ListBackupsResponse.next_page_token]
     * from a previous
     * [ListBackupsResponse][google.bigtable.admin.v2.ListBackupsResponse] to the
     * same `parent` and with the same `filter`.
     *
     * Generated from protobuf field <code>string page_token = 5;</code>
     */
    protected $page_token = '';

    /**
     * @param string $parent Required. The cluster to list backups from.  Values are of the
     *                       form `projects/{project}/instances/{instance}/clusters/{cluster}`.
     *                       Use `{cluster} = '-'` to list backups for all clusters in an instance,
     *                       e.g., `projects/{project}/instances/{instance}/clusters/-`. Please see
     *                       {@see BigtableTableAdminClient::clusterName()} for help formatting this field.
     *
     * @return \Google\Cloud\Bigtable\Admin\V2\ListBackupsRequest
     *
     * @experimental
     */
    public static function build(string $parent): self
    {
        return (new self())
            ->setParent($parent);
    }

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $parent
     *           Required. The cluster to list backups from.  Values are of the
     *           form `projects/{project}/instances/{instance}/clusters/{cluster}`.
     *           Use `{cluster} = '-'` to list backups for all clusters in an instance,
     *           e.g., `projects/{project}/instances/{instance}/clusters/-`.
     *     @type string $filter
     *           A filter expression that filters backups listed in the response.
     *           The expression must specify the field name, a comparison operator,
     *           and the value that you want to use for filtering. The value must be a
     *           string, a number, or a boolean. The comparison operator must be
     *           <, >, <=, >=, !=, =, or :. Colon ':' represents a HAS operator which is
     *           roughly synonymous with equality. Filter rules are case insensitive.
     *           The fields eligible for filtering are:
     *           * `name`
     *           * `source_table`
     *           * `state`
     *           * `start_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     *           * `end_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     *           * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     *           * `size_bytes`
     *           To filter on multiple expressions, provide each separate expression within
     *           parentheses. By default, each expression is an AND expression. However,
     *           you can include AND, OR, and NOT expressions explicitly.
     *           Some examples of using filters are:
     *           * `name:"exact"` --> The backup's name is the string "exact".
     *           * `name:howl` --> The backup's name contains the string "howl".
     *           * `source_table:prod`
     *                  --> The source_table's name contains the string "prod".
     *           * `state:CREATING` --> The backup is pending creation.
     *           * `state:READY` --> The backup is fully created and ready for use.
     *           * `(name:howl) AND (start_time < \"2018-03-28T14:50:00Z\")`
     *                  --> The backup name contains the string "howl" and start_time
     *                      of the backup is before 2018-03-28T14:50:00Z.
     *           * `size_bytes > 10000000000` --> The backup's size is greater than 10GB
     *     @type string $order_by
     *           An expression for specifying the sort order of the results of the request.
     *           The string value should specify one or more fields in
     *           [Backup][google.bigtable.admin.v2.Backup]. The full syntax is described at
     *           https://aip.dev/132#ordering.
     *           Fields supported are:
     *           * name
     *           * source_table
     *           * expire_time
     *           * start_time
     *           * end_time
     *           * size_bytes
     *           * state
     *           For example, "start_time". The default sorting order is ascending.
     *           To specify descending order for the field, a suffix " desc" should
     *           be appended to the field name. For example, "start_time desc".
     *           Redundant space characters in the syntax are insigificant.
     *           If order_by is empty, results will be sorted by `start_time` in descending
     *           order starting from the most recently created backup.
     *     @type int $page_size
     *           Number of backups to be returned in the response. If 0 or
     *           less, defaults to the server's maximum allowed page size.
     *     @type string $page_token
     *           If non-empty, `page_token` should contain a
     *           [next_page_token][google.bigtable.admin.v2.ListBackupsResponse.next_page_token]
     *           from a previous
     *           [ListBackupsResponse][google.bigtable.admin.v2.ListBackupsResponse] to the
     *           same `parent` and with the same `filter`.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Bigtable\Admin\V2\BigtableTableAdmin::initOnce();
        parent::__construct($data);
    }

    /**
     * Required. The cluster to list backups from.  Values are of the
     * form `projects/{project}/instances/{instance}/clusters/{cluster}`.
     * Use `{cluster} = '-'` to list backups for all clusters in an instance,
     * e.g., `projects/{project}/instances/{instance}/clusters/-`.
     *
     * Generated from protobuf field <code>string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @return string
     */
    public function getParent()
    {
        return $this->parent;
    }

    /**
     * Required. The cluster to list backups from.  Values are of the
     * form `projects/{project}/instances/{instance}/clusters/{cluster}`.
     * Use `{cluster} = '-'` to list backups for all clusters in an instance,
     * e.g., `projects/{project}/instances/{instance}/clusters/-`.
     *
     * Generated from protobuf field <code>string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     * @param string $var
     * @return $this
     */
    public function setParent($var)
    {
        GPBUtil::checkString($var, True);
        $this->parent = $var;

        return $this;
    }

    /**
     * A filter expression that filters backups listed in the response.
     * The expression must specify the field name, a comparison operator,
     * and the value that you want to use for filtering. The value must be a
     * string, a number, or a boolean. The comparison operator must be
     * <, >, <=, >=, !=, =, or :. Colon ':' represents a HAS operator which is
     * roughly synonymous with equality. Filter rules are case insensitive.
     * The fields eligible for filtering are:
     * * `name`
     * * `source_table`
     * * `state`
     * * `start_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `end_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `size_bytes`
     * To filter on multiple expressions, provide each separate expression within
     * parentheses. By default, each expression is an AND expression. However,
     * you can include AND, OR, and NOT expressions explicitly.
     * Some examples of using filters are:
     * * `name:"exact"` --> The backup's name is the string "exact".
     * * `name:howl` --> The backup's name contains the string "howl".
     * * `source_table:prod`
     *        --> The source_table's name contains the string "prod".
     * * `state:CREATING` --> The backup is pending creation.
     * * `state:READY` --> The backup is fully created and ready for use.
     * * `(name:howl) AND (start_time < \"2018-03-28T14:50:00Z\")`
     *        --> The backup name contains the string "howl" and start_time
     *            of the backup is before 2018-03-28T14:50:00Z.
     * * `size_bytes > 10000000000` --> The backup's size is greater than 10GB
     *
     * Generated from protobuf field <code>string filter = 2;</code>
     * @return string
     */
    public function getFilter()
    {
        return $this->filter;
    }

    /**
     * A filter expression that filters backups listed in the response.
     * The expression must specify the field name, a comparison operator,
     * and the value that you want to use for filtering. The value must be a
     * string, a number, or a boolean. The comparison operator must be
     * <, >, <=, >=, !=, =, or :. Colon ':' represents a HAS operator which is
     * roughly synonymous with equality. Filter rules are case insensitive.
     * The fields eligible for filtering are:
     * * `name`
     * * `source_table`
     * * `state`
     * * `start_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `end_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
     * * `size_bytes`
     * To filter on multiple expressions, provide each separate expression within
     * parentheses. By default, each expression is an AND expression. However,
     * you can include AND, OR, and NOT expressions explicitly.
     * Some examples of using filters are:
     * * `name:"exact"` --> The backup's name is the string "exact".
     * * `name:howl` --> The backup's name contains the string "howl".
     * * `source_table:prod`
     *        --> The source_table's name contains the string "prod".
     * * `state:CREATING` --> The backup is pending creation.
     * * `state:READY` --> The backup is fully created and ready for use.
     * * `(name:howl) AND (start_time < \"2018-03-28T14:50:00Z\")`
     *        --> The backup name contains the string "howl" and start_time
     *            of the backup is before 2018-03-28T14:50:00Z.
     * * `size_bytes > 10000000000` --> The backup's size is greater than 10GB
     *
     * Generated from protobuf field <code>string filter = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setFilter($var)
    {
        GPBUtil::checkString($var, True);
        $this->filter = $var;

        return $this;
    }

    /**
     * An expression for specifying the sort order of the results of the request.
     * The string value should specify one or more fields in
     * [Backup][google.bigtable.admin.v2.Backup]. The full syntax is described at
     * https://aip.dev/132#ordering.
     * Fields supported are:
     * * name
     * * source_table
     * * expire_time
     * * start_time
     * * end_time
     * * size_bytes
     * * state
     * For example, "start_time". The default sorting order is ascending.
     * To specify descending order for the field, a suffix " desc" should
     * be appended to the field name. For example, "start_time desc".
     * Redundant space characters in the syntax are insigificant.
     * If order_by is empty, results will be sorted by `start_time` in descending
     * order starting from the most recently created backup.
     *
     * Generated from protobuf field <code>string order_by = 3;</code>
     * @return string
     */
    public function getOrderBy()
    {
        return $this->order_by;
    }

    /**
     * An expression for specifying the sort order of the results of the request.
     * The string value should specify one or more fields in
     * [Backup][google.bigtable.admin.v2.Backup]. The full syntax is described at
     * https://aip.dev/132#ordering.
     * Fields supported are:
     * * name
     * * source_table
     * * expire_time
     * * start_time
     * * end_time
     * * size_bytes
     * * state
     * For example, "start_time". The default sorting order is ascending.
     * To specify descending order for the field, a suffix " desc" should
     * be appended to the field name. For example, "start_time desc".
     * Redundant space characters in the syntax are insigificant.
     * If order_by is empty, results will be sorted by `start_time` in descending
     * order starting from the most recently created backup.
     *
     * Generated from protobuf field <code>string order_by = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setOrderBy($var)
    {
        GPBUtil::checkString($var, True);
        $this->order_by = $var;

        return $this;
    }

    /**
     * Number of backups to be returned in the response. If 0 or
     * less, defaults to the server's maximum allowed page size.
     *
     * Generated from protobuf field <code>int32 page_size = 4;</code>
     * @return int
     */
    public function getPageSize()
    {
        return $this->page_size;
    }

    /**
     * Number of backups to be returned in the response. If 0 or
     * less, defaults to the server's maximum allowed page size.
     *
     * Generated from protobuf field <code>int32 page_size = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setPageSize($var)
    {
        GPBUtil::checkInt32($var);
        $this->page_size = $var;

        return $this;
    }

    /**
     * If non-empty, `page_token` should contain a
     * [next_page_token][google.bigtable.admin.v2.ListBackupsResponse.next_page_token]
     * from a previous
     * [ListBackupsResponse][google.bigtable.admin.v2.ListBackupsResponse] to the
     * same `parent` and with the same `filter`.
     *
     * Generated from protobuf field <code>string page_token = 5;</code>
     * @return string
     */
    public function getPageToken()
    {
        return $this->page_token;
    }

    /**
     * If non-empty, `page_token` should contain a
     * [next_page_token][google.bigtable.admin.v2.ListBackupsResponse.next_page_token]
     * from a previous
     * [ListBackupsResponse][google.bigtable.admin.v2.ListBackupsResponse] to the
     * same `parent` and with the same `filter`.
     *
     * Generated from protobuf field <code>string page_token = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setPageToken($var)
    {
        GPBUtil::checkString($var, True);
        $this->page_token = $var;

        return $this;
    }

}

