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

namespace Google\Cloud\ApiHub\V1;

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

/**
 * The [ListApiOperations][google.cloud.apihub.v1.ApiHub.ListApiOperations]
 * method's request.
 *
 * Generated from protobuf message <code>google.cloud.apihub.v1.ListApiOperationsRequest</code>
 */
class ListApiOperationsRequest extends \Google\Protobuf\Internal\Message
{
    /**
     * Required. The parent which owns this collection of operations i.e., the API
     * version. Format:
     * `projects/{project}/locations/{location}/apis/{api}/versions/{version}`
     *
     * Generated from protobuf field <code>string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {</code>
     */
    protected $parent = '';
    /**
     * Optional. An expression that filters the list of ApiOperations.
     * A filter expression consists of a field name, a comparison
     * operator, and a value for filtering. The value must be a string or a
     * boolean. The comparison operator must be one of: `<`, `>` or
     * `=`. Filters are not case sensitive.
     * The following fields in the `ApiOperation` are eligible for filtering:
     *   * `name` - The ApiOperation resource name. Allowed comparison
     *   operators:
     *   `=`.
     *   * `details.http_operation.path.path` - The http operation's complete path
     *   relative to server endpoint. Allowed comparison operators: `=`.
     *   * `details.http_operation.method` - The http operation method type.
     *   Allowed comparison operators: `=`.
     *   * `details.deprecated` - Indicates if the ApiOperation is deprecated.
     *   Allowed values are True / False indicating the deprycation status of the
     *   ApiOperation. Allowed comparison operators: `=`.
     *   * `create_time` - The time at which the ApiOperation was created. The
     *   value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339]
     *   format. Allowed comparison operators: `>` and `<`.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.enum_values.values.id` - The
     *   allowed value id of the user defined enum attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-enum-id is a placeholder that can be replaced with
     *   any user defined enum attribute name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.enum_values.values.display_name`
     *   - The allowed value display name of the user defined enum attribute
     *   associated with the Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-enum-display-name is a placeholder that can be
     *   replaced with any user defined enum attribute enum name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.string_values.values` - The
     *   allowed value of the user defined string attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-string is a placeholder that can be replaced with
     *   any user defined string attribute name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.json_values.values` - The
     *   allowed value of the user defined JSON attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-json is a placeholder that can be replaced with
     *   any user defined JSON attribute name.
     * Expressions are combined with either `AND` logic operator or `OR` logical
     * operator but not both of them together i.e. only one of the `AND` or `OR`
     * operator can be used throughout the filter string and both the operators
     * cannot be used together. No other logical operators are supported. At most
     * three filter fields are allowed in the filter string and if provided
     * more than that then `INVALID_ARGUMENT` error is returned by the API.
     * Here are a few examples:
     *   * `details.deprecated = True` -  The ApiOperation is deprecated.
     *   * `details.http_operation.method = GET AND create_time <
     *   \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` -
     *   The method of the http operation of the ApiOperation is _GET_ and the
     *   spec was created before _2021-08-15 14:50:00 UTC_ and after _2021-08-10
     *   12:00:00 UTC_.
     *   * `details.http_operation.method = GET OR details.http_operation.method =
     *   POST`. - The http operation of the method of ApiOperation is _GET_ or
     *   _POST_.
     *   * `details.deprecated = True AND
     *   attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values:
     *   test`  - The filter string specifies that the ApiOperation is deprecated
     *   and the value of the user defined attribute of type string is _test_.
     *
     * Generated from protobuf field <code>string filter = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $filter = '';
    /**
     * Optional. The maximum number of operations to return. The service may
     * return fewer than this value. If unspecified, at most 50 operations will be
     * returned. The maximum value is 1000; values above 1000 will be coerced to
     * 1000.
     *
     * Generated from protobuf field <code>int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $page_size = 0;
    /**
     * Optional. A page token, received from a previous `ListApiOperations` call.
     * Provide this to retrieve the subsequent page.
     * When paginating, all other parameters (except page_size) provided to
     * `ListApiOperations` must match the call that provided the page token.
     *
     * Generated from protobuf field <code>string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $page_token = '';

    /**
     * @param string $parent Required. The parent which owns this collection of operations i.e., the API
     *                       version. Format:
     *                       `projects/{project}/locations/{location}/apis/{api}/versions/{version}`
     *                       Please see {@see ApiHubClient::versionName()} for help formatting this field.
     *
     * @return \Google\Cloud\ApiHub\V1\ListApiOperationsRequest
     *
     * @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 parent which owns this collection of operations i.e., the API
     *           version. Format:
     *           `projects/{project}/locations/{location}/apis/{api}/versions/{version}`
     *     @type string $filter
     *           Optional. An expression that filters the list of ApiOperations.
     *           A filter expression consists of a field name, a comparison
     *           operator, and a value for filtering. The value must be a string or a
     *           boolean. The comparison operator must be one of: `<`, `>` or
     *           `=`. Filters are not case sensitive.
     *           The following fields in the `ApiOperation` are eligible for filtering:
     *             * `name` - The ApiOperation resource name. Allowed comparison
     *             operators:
     *             `=`.
     *             * `details.http_operation.path.path` - The http operation's complete path
     *             relative to server endpoint. Allowed comparison operators: `=`.
     *             * `details.http_operation.method` - The http operation method type.
     *             Allowed comparison operators: `=`.
     *             * `details.deprecated` - Indicates if the ApiOperation is deprecated.
     *             Allowed values are True / False indicating the deprycation status of the
     *             ApiOperation. Allowed comparison operators: `=`.
     *             * `create_time` - The time at which the ApiOperation was created. The
     *             value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339]
     *             format. Allowed comparison operators: `>` and `<`.
     *             * `attributes.projects/test-project-id/locations/test-location-id/
     *             attributes/user-defined-attribute-id.enum_values.values.id` - The
     *             allowed value id of the user defined enum attribute associated with the
     *             Resource. Allowed comparison operator is `:`. Here
     *             user-defined-attribute-enum-id is a placeholder that can be replaced with
     *             any user defined enum attribute name.
     *             * `attributes.projects/test-project-id/locations/test-location-id/
     *             attributes/user-defined-attribute-id.enum_values.values.display_name`
     *             - The allowed value display name of the user defined enum attribute
     *             associated with the Resource. Allowed comparison operator is `:`. Here
     *             user-defined-attribute-enum-display-name is a placeholder that can be
     *             replaced with any user defined enum attribute enum name.
     *             * `attributes.projects/test-project-id/locations/test-location-id/
     *             attributes/user-defined-attribute-id.string_values.values` - The
     *             allowed value of the user defined string attribute associated with the
     *             Resource. Allowed comparison operator is `:`. Here
     *             user-defined-attribute-string is a placeholder that can be replaced with
     *             any user defined string attribute name.
     *             * `attributes.projects/test-project-id/locations/test-location-id/
     *             attributes/user-defined-attribute-id.json_values.values` - The
     *             allowed value of the user defined JSON attribute associated with the
     *             Resource. Allowed comparison operator is `:`. Here
     *             user-defined-attribute-json is a placeholder that can be replaced with
     *             any user defined JSON attribute name.
     *           Expressions are combined with either `AND` logic operator or `OR` logical
     *           operator but not both of them together i.e. only one of the `AND` or `OR`
     *           operator can be used throughout the filter string and both the operators
     *           cannot be used together. No other logical operators are supported. At most
     *           three filter fields are allowed in the filter string and if provided
     *           more than that then `INVALID_ARGUMENT` error is returned by the API.
     *           Here are a few examples:
     *             * `details.deprecated = True` -  The ApiOperation is deprecated.
     *             * `details.http_operation.method = GET AND create_time <
     *             \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` -
     *             The method of the http operation of the ApiOperation is _GET_ and the
     *             spec was created before _2021-08-15 14:50:00 UTC_ and after _2021-08-10
     *             12:00:00 UTC_.
     *             * `details.http_operation.method = GET OR details.http_operation.method =
     *             POST`. - The http operation of the method of ApiOperation is _GET_ or
     *             _POST_.
     *             * `details.deprecated = True AND
     *             attributes.projects/test-project-id/locations/test-location-id/
     *             attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values:
     *             test`  - The filter string specifies that the ApiOperation is deprecated
     *             and the value of the user defined attribute of type string is _test_.
     *     @type int $page_size
     *           Optional. The maximum number of operations to return. The service may
     *           return fewer than this value. If unspecified, at most 50 operations will be
     *           returned. The maximum value is 1000; values above 1000 will be coerced to
     *           1000.
     *     @type string $page_token
     *           Optional. A page token, received from a previous `ListApiOperations` call.
     *           Provide this to retrieve the subsequent page.
     *           When paginating, all other parameters (except page_size) provided to
     *           `ListApiOperations` must match the call that provided the page token.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Apihub\V1\ApihubService::initOnce();
        parent::__construct($data);
    }

    /**
     * Required. The parent which owns this collection of operations i.e., the API
     * version. Format:
     * `projects/{project}/locations/{location}/apis/{api}/versions/{version}`
     *
     * 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 parent which owns this collection of operations i.e., the API
     * version. Format:
     * `projects/{project}/locations/{location}/apis/{api}/versions/{version}`
     *
     * 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;
    }

    /**
     * Optional. An expression that filters the list of ApiOperations.
     * A filter expression consists of a field name, a comparison
     * operator, and a value for filtering. The value must be a string or a
     * boolean. The comparison operator must be one of: `<`, `>` or
     * `=`. Filters are not case sensitive.
     * The following fields in the `ApiOperation` are eligible for filtering:
     *   * `name` - The ApiOperation resource name. Allowed comparison
     *   operators:
     *   `=`.
     *   * `details.http_operation.path.path` - The http operation's complete path
     *   relative to server endpoint. Allowed comparison operators: `=`.
     *   * `details.http_operation.method` - The http operation method type.
     *   Allowed comparison operators: `=`.
     *   * `details.deprecated` - Indicates if the ApiOperation is deprecated.
     *   Allowed values are True / False indicating the deprycation status of the
     *   ApiOperation. Allowed comparison operators: `=`.
     *   * `create_time` - The time at which the ApiOperation was created. The
     *   value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339]
     *   format. Allowed comparison operators: `>` and `<`.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.enum_values.values.id` - The
     *   allowed value id of the user defined enum attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-enum-id is a placeholder that can be replaced with
     *   any user defined enum attribute name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.enum_values.values.display_name`
     *   - The allowed value display name of the user defined enum attribute
     *   associated with the Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-enum-display-name is a placeholder that can be
     *   replaced with any user defined enum attribute enum name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.string_values.values` - The
     *   allowed value of the user defined string attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-string is a placeholder that can be replaced with
     *   any user defined string attribute name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.json_values.values` - The
     *   allowed value of the user defined JSON attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-json is a placeholder that can be replaced with
     *   any user defined JSON attribute name.
     * Expressions are combined with either `AND` logic operator or `OR` logical
     * operator but not both of them together i.e. only one of the `AND` or `OR`
     * operator can be used throughout the filter string and both the operators
     * cannot be used together. No other logical operators are supported. At most
     * three filter fields are allowed in the filter string and if provided
     * more than that then `INVALID_ARGUMENT` error is returned by the API.
     * Here are a few examples:
     *   * `details.deprecated = True` -  The ApiOperation is deprecated.
     *   * `details.http_operation.method = GET AND create_time <
     *   \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` -
     *   The method of the http operation of the ApiOperation is _GET_ and the
     *   spec was created before _2021-08-15 14:50:00 UTC_ and after _2021-08-10
     *   12:00:00 UTC_.
     *   * `details.http_operation.method = GET OR details.http_operation.method =
     *   POST`. - The http operation of the method of ApiOperation is _GET_ or
     *   _POST_.
     *   * `details.deprecated = True AND
     *   attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values:
     *   test`  - The filter string specifies that the ApiOperation is deprecated
     *   and the value of the user defined attribute of type string is _test_.
     *
     * Generated from protobuf field <code>string filter = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getFilter()
    {
        return $this->filter;
    }

    /**
     * Optional. An expression that filters the list of ApiOperations.
     * A filter expression consists of a field name, a comparison
     * operator, and a value for filtering. The value must be a string or a
     * boolean. The comparison operator must be one of: `<`, `>` or
     * `=`. Filters are not case sensitive.
     * The following fields in the `ApiOperation` are eligible for filtering:
     *   * `name` - The ApiOperation resource name. Allowed comparison
     *   operators:
     *   `=`.
     *   * `details.http_operation.path.path` - The http operation's complete path
     *   relative to server endpoint. Allowed comparison operators: `=`.
     *   * `details.http_operation.method` - The http operation method type.
     *   Allowed comparison operators: `=`.
     *   * `details.deprecated` - Indicates if the ApiOperation is deprecated.
     *   Allowed values are True / False indicating the deprycation status of the
     *   ApiOperation. Allowed comparison operators: `=`.
     *   * `create_time` - The time at which the ApiOperation was created. The
     *   value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339]
     *   format. Allowed comparison operators: `>` and `<`.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.enum_values.values.id` - The
     *   allowed value id of the user defined enum attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-enum-id is a placeholder that can be replaced with
     *   any user defined enum attribute name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.enum_values.values.display_name`
     *   - The allowed value display name of the user defined enum attribute
     *   associated with the Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-enum-display-name is a placeholder that can be
     *   replaced with any user defined enum attribute enum name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.string_values.values` - The
     *   allowed value of the user defined string attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-string is a placeholder that can be replaced with
     *   any user defined string attribute name.
     *   * `attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/user-defined-attribute-id.json_values.values` - The
     *   allowed value of the user defined JSON attribute associated with the
     *   Resource. Allowed comparison operator is `:`. Here
     *   user-defined-attribute-json is a placeholder that can be replaced with
     *   any user defined JSON attribute name.
     * Expressions are combined with either `AND` logic operator or `OR` logical
     * operator but not both of them together i.e. only one of the `AND` or `OR`
     * operator can be used throughout the filter string and both the operators
     * cannot be used together. No other logical operators are supported. At most
     * three filter fields are allowed in the filter string and if provided
     * more than that then `INVALID_ARGUMENT` error is returned by the API.
     * Here are a few examples:
     *   * `details.deprecated = True` -  The ApiOperation is deprecated.
     *   * `details.http_operation.method = GET AND create_time <
     *   \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` -
     *   The method of the http operation of the ApiOperation is _GET_ and the
     *   spec was created before _2021-08-15 14:50:00 UTC_ and after _2021-08-10
     *   12:00:00 UTC_.
     *   * `details.http_operation.method = GET OR details.http_operation.method =
     *   POST`. - The http operation of the method of ApiOperation is _GET_ or
     *   _POST_.
     *   * `details.deprecated = True AND
     *   attributes.projects/test-project-id/locations/test-location-id/
     *   attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values:
     *   test`  - The filter string specifies that the ApiOperation is deprecated
     *   and the value of the user defined attribute of type string is _test_.
     *
     * Generated from protobuf field <code>string filter = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setFilter($var)
    {
        GPBUtil::checkString($var, True);
        $this->filter = $var;

        return $this;
    }

    /**
     * Optional. The maximum number of operations to return. The service may
     * return fewer than this value. If unspecified, at most 50 operations will be
     * returned. The maximum value is 1000; values above 1000 will be coerced to
     * 1000.
     *
     * Generated from protobuf field <code>int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getPageSize()
    {
        return $this->page_size;
    }

    /**
     * Optional. The maximum number of operations to return. The service may
     * return fewer than this value. If unspecified, at most 50 operations will be
     * returned. The maximum value is 1000; values above 1000 will be coerced to
     * 1000.
     *
     * Generated from protobuf field <code>int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setPageSize($var)
    {
        GPBUtil::checkInt32($var);
        $this->page_size = $var;

        return $this;
    }

    /**
     * Optional. A page token, received from a previous `ListApiOperations` call.
     * Provide this to retrieve the subsequent page.
     * When paginating, all other parameters (except page_size) provided to
     * `ListApiOperations` must match the call that provided the page token.
     *
     * Generated from protobuf field <code>string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getPageToken()
    {
        return $this->page_token;
    }

    /**
     * Optional. A page token, received from a previous `ListApiOperations` call.
     * Provide this to retrieve the subsequent page.
     * When paginating, all other parameters (except page_size) provided to
     * `ListApiOperations` must match the call that provided the page token.
     *
     * Generated from protobuf field <code>string page_token = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setPageToken($var)
    {
        GPBUtil::checkString($var, True);
        $this->page_token = $var;

        return $this;
    }

}

