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

namespace Google\Cloud\CloudDms\V1;

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

/**
 * Definition of a transformation that is to be applied to a group of entities
 * in the source schema. Several such transformations can be applied to an
 * entity sequentially to define the corresponding entity in the target schema.
 *
 * Generated from protobuf message <code>google.cloud.clouddms.v1.MappingRule</code>
 */
class MappingRule extends \Google\Protobuf\Internal\Message
{
    /**
     * Full name of the mapping rule resource, in the form of:
     * projects/{project}/locations/{location}/conversionWorkspaces/{set}/mappingRule/{rule}.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     */
    protected $name = '';
    /**
     * Optional. A human readable name
     *
     * Generated from protobuf field <code>string display_name = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $display_name = '';
    /**
     * Optional. The mapping rule state
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MappingRule.State state = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $state = 0;
    /**
     * Required. The rule scope
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.DatabaseEntityType rule_scope = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $rule_scope = 0;
    /**
     * Required. The rule filter
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MappingRuleFilter filter = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $filter = null;
    /**
     * Required. The order in which the rule is applied. Lower order rules are
     * applied before higher value rules so they may end up being overridden.
     *
     * Generated from protobuf field <code>int64 rule_order = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    protected $rule_order = 0;
    /**
     * Output only. The revision ID of the mapping rule.
     * A new revision is committed whenever the mapping rule is changed in any
     * way. The format is an 8-character hexadecimal string.
     *
     * Generated from protobuf field <code>string revision_id = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $revision_id = '';
    /**
     * Output only. The timestamp that the revision was created.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp revision_create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     */
    protected $revision_create_time = null;
    protected $details;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           Full name of the mapping rule resource, in the form of:
     *           projects/{project}/locations/{location}/conversionWorkspaces/{set}/mappingRule/{rule}.
     *     @type string $display_name
     *           Optional. A human readable name
     *     @type int $state
     *           Optional. The mapping rule state
     *     @type int $rule_scope
     *           Required. The rule scope
     *     @type \Google\Cloud\CloudDms\V1\MappingRuleFilter $filter
     *           Required. The rule filter
     *     @type int|string $rule_order
     *           Required. The order in which the rule is applied. Lower order rules are
     *           applied before higher value rules so they may end up being overridden.
     *     @type string $revision_id
     *           Output only. The revision ID of the mapping rule.
     *           A new revision is committed whenever the mapping rule is changed in any
     *           way. The format is an 8-character hexadecimal string.
     *     @type \Google\Protobuf\Timestamp $revision_create_time
     *           Output only. The timestamp that the revision was created.
     *     @type \Google\Cloud\CloudDms\V1\SingleEntityRename $single_entity_rename
     *           Optional. Rule to specify how a single entity should be renamed.
     *     @type \Google\Cloud\CloudDms\V1\MultiEntityRename $multi_entity_rename
     *           Optional. Rule to specify how multiple entities should be renamed.
     *     @type \Google\Cloud\CloudDms\V1\EntityMove $entity_move
     *           Optional. Rule to specify how multiple entities should be relocated into
     *           a different schema.
     *     @type \Google\Cloud\CloudDms\V1\SingleColumnChange $single_column_change
     *           Optional. Rule to specify how a single column is converted.
     *     @type \Google\Cloud\CloudDms\V1\MultiColumnDatatypeChange $multi_column_data_type_change
     *           Optional. Rule to specify how multiple columns should be converted to a
     *           different data type.
     *     @type \Google\Cloud\CloudDms\V1\ConditionalColumnSetValue $conditional_column_set_value
     *           Optional. Rule to specify how the data contained in a column should be
     *           transformed (such as trimmed, rounded, etc) provided that the data meets
     *           certain criteria.
     *     @type \Google\Cloud\CloudDms\V1\ConvertRowIdToColumn $convert_rowid_column
     *           Optional. Rule to specify how multiple tables should be converted with an
     *           additional rowid column.
     *     @type \Google\Cloud\CloudDms\V1\SetTablePrimaryKey $set_table_primary_key
     *           Optional. Rule to specify the primary key for a table
     *     @type \Google\Cloud\CloudDms\V1\SinglePackageChange $single_package_change
     *           Optional. Rule to specify how a single package is converted.
     *     @type \Google\Cloud\CloudDms\V1\SourceSqlChange $source_sql_change
     *           Optional. Rule to change the sql code for an entity, for example,
     *           function, procedure.
     *     @type \Google\Cloud\CloudDms\V1\FilterTableColumns $filter_table_columns
     *           Optional. Rule to specify the list of columns to include or exclude from
     *           a table.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Clouddms\V1\ConversionworkspaceResources::initOnce();
        parent::__construct($data);
    }

    /**
     * Full name of the mapping rule resource, in the form of:
     * projects/{project}/locations/{location}/conversionWorkspaces/{set}/mappingRule/{rule}.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Full name of the mapping rule resource, in the form of:
     * projects/{project}/locations/{location}/conversionWorkspaces/{set}/mappingRule/{rule}.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

    /**
     * Optional. A human readable name
     *
     * Generated from protobuf field <code>string display_name = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getDisplayName()
    {
        return $this->display_name;
    }

    /**
     * Optional. A human readable name
     *
     * Generated from protobuf field <code>string display_name = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setDisplayName($var)
    {
        GPBUtil::checkString($var, True);
        $this->display_name = $var;

        return $this;
    }

    /**
     * Optional. The mapping rule state
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MappingRule.State state = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return int
     */
    public function getState()
    {
        return $this->state;
    }

    /**
     * Optional. The mapping rule state
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MappingRule.State state = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param int $var
     * @return $this
     */
    public function setState($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\CloudDms\V1\MappingRule\State::class);
        $this->state = $var;

        return $this;
    }

    /**
     * Required. The rule scope
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.DatabaseEntityType rule_scope = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return int
     */
    public function getRuleScope()
    {
        return $this->rule_scope;
    }

    /**
     * Required. The rule scope
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.DatabaseEntityType rule_scope = 4 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param int $var
     * @return $this
     */
    public function setRuleScope($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\CloudDms\V1\DatabaseEntityType::class);
        $this->rule_scope = $var;

        return $this;
    }

    /**
     * Required. The rule filter
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MappingRuleFilter filter = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return \Google\Cloud\CloudDms\V1\MappingRuleFilter|null
     */
    public function getFilter()
    {
        return $this->filter;
    }

    public function hasFilter()
    {
        return isset($this->filter);
    }

    public function clearFilter()
    {
        unset($this->filter);
    }

    /**
     * Required. The rule filter
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MappingRuleFilter filter = 5 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param \Google\Cloud\CloudDms\V1\MappingRuleFilter $var
     * @return $this
     */
    public function setFilter($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\MappingRuleFilter::class);
        $this->filter = $var;

        return $this;
    }

    /**
     * Required. The order in which the rule is applied. Lower order rules are
     * applied before higher value rules so they may end up being overridden.
     *
     * Generated from protobuf field <code>int64 rule_order = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return int|string
     */
    public function getRuleOrder()
    {
        return $this->rule_order;
    }

    /**
     * Required. The order in which the rule is applied. Lower order rules are
     * applied before higher value rules so they may end up being overridden.
     *
     * Generated from protobuf field <code>int64 rule_order = 6 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param int|string $var
     * @return $this
     */
    public function setRuleOrder($var)
    {
        GPBUtil::checkInt64($var);
        $this->rule_order = $var;

        return $this;
    }

    /**
     * Output only. The revision ID of the mapping rule.
     * A new revision is committed whenever the mapping rule is changed in any
     * way. The format is an 8-character hexadecimal string.
     *
     * Generated from protobuf field <code>string revision_id = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return string
     */
    public function getRevisionId()
    {
        return $this->revision_id;
    }

    /**
     * Output only. The revision ID of the mapping rule.
     * A new revision is committed whenever the mapping rule is changed in any
     * way. The format is an 8-character hexadecimal string.
     *
     * Generated from protobuf field <code>string revision_id = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param string $var
     * @return $this
     */
    public function setRevisionId($var)
    {
        GPBUtil::checkString($var, True);
        $this->revision_id = $var;

        return $this;
    }

    /**
     * Output only. The timestamp that the revision was created.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp revision_create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getRevisionCreateTime()
    {
        return $this->revision_create_time;
    }

    public function hasRevisionCreateTime()
    {
        return isset($this->revision_create_time);
    }

    public function clearRevisionCreateTime()
    {
        unset($this->revision_create_time);
    }

    /**
     * Output only. The timestamp that the revision was created.
     *
     * Generated from protobuf field <code>.google.protobuf.Timestamp revision_create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];</code>
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setRevisionCreateTime($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->revision_create_time = $var;

        return $this;
    }

    /**
     * Optional. Rule to specify how a single entity should be renamed.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SingleEntityRename single_entity_rename = 102 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\SingleEntityRename|null
     */
    public function getSingleEntityRename()
    {
        return $this->readOneof(102);
    }

    public function hasSingleEntityRename()
    {
        return $this->hasOneof(102);
    }

    /**
     * Optional. Rule to specify how a single entity should be renamed.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SingleEntityRename single_entity_rename = 102 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\SingleEntityRename $var
     * @return $this
     */
    public function setSingleEntityRename($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\SingleEntityRename::class);
        $this->writeOneof(102, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify how multiple entities should be renamed.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MultiEntityRename multi_entity_rename = 103 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\MultiEntityRename|null
     */
    public function getMultiEntityRename()
    {
        return $this->readOneof(103);
    }

    public function hasMultiEntityRename()
    {
        return $this->hasOneof(103);
    }

    /**
     * Optional. Rule to specify how multiple entities should be renamed.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MultiEntityRename multi_entity_rename = 103 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\MultiEntityRename $var
     * @return $this
     */
    public function setMultiEntityRename($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\MultiEntityRename::class);
        $this->writeOneof(103, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify how multiple entities should be relocated into
     * a different schema.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.EntityMove entity_move = 105 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\EntityMove|null
     */
    public function getEntityMove()
    {
        return $this->readOneof(105);
    }

    public function hasEntityMove()
    {
        return $this->hasOneof(105);
    }

    /**
     * Optional. Rule to specify how multiple entities should be relocated into
     * a different schema.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.EntityMove entity_move = 105 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\EntityMove $var
     * @return $this
     */
    public function setEntityMove($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\EntityMove::class);
        $this->writeOneof(105, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify how a single column is converted.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SingleColumnChange single_column_change = 106 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\SingleColumnChange|null
     */
    public function getSingleColumnChange()
    {
        return $this->readOneof(106);
    }

    public function hasSingleColumnChange()
    {
        return $this->hasOneof(106);
    }

    /**
     * Optional. Rule to specify how a single column is converted.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SingleColumnChange single_column_change = 106 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\SingleColumnChange $var
     * @return $this
     */
    public function setSingleColumnChange($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\SingleColumnChange::class);
        $this->writeOneof(106, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify how multiple columns should be converted to a
     * different data type.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MultiColumnDatatypeChange multi_column_data_type_change = 107 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\MultiColumnDatatypeChange|null
     */
    public function getMultiColumnDataTypeChange()
    {
        return $this->readOneof(107);
    }

    public function hasMultiColumnDataTypeChange()
    {
        return $this->hasOneof(107);
    }

    /**
     * Optional. Rule to specify how multiple columns should be converted to a
     * different data type.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.MultiColumnDatatypeChange multi_column_data_type_change = 107 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\MultiColumnDatatypeChange $var
     * @return $this
     */
    public function setMultiColumnDataTypeChange($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\MultiColumnDatatypeChange::class);
        $this->writeOneof(107, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify how the data contained in a column should be
     * transformed (such as trimmed, rounded, etc) provided that the data meets
     * certain criteria.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.ConditionalColumnSetValue conditional_column_set_value = 108 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\ConditionalColumnSetValue|null
     */
    public function getConditionalColumnSetValue()
    {
        return $this->readOneof(108);
    }

    public function hasConditionalColumnSetValue()
    {
        return $this->hasOneof(108);
    }

    /**
     * Optional. Rule to specify how the data contained in a column should be
     * transformed (such as trimmed, rounded, etc) provided that the data meets
     * certain criteria.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.ConditionalColumnSetValue conditional_column_set_value = 108 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\ConditionalColumnSetValue $var
     * @return $this
     */
    public function setConditionalColumnSetValue($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\ConditionalColumnSetValue::class);
        $this->writeOneof(108, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify how multiple tables should be converted with an
     * additional rowid column.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.ConvertRowIdToColumn convert_rowid_column = 114 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\ConvertRowIdToColumn|null
     */
    public function getConvertRowidColumn()
    {
        return $this->readOneof(114);
    }

    public function hasConvertRowidColumn()
    {
        return $this->hasOneof(114);
    }

    /**
     * Optional. Rule to specify how multiple tables should be converted with an
     * additional rowid column.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.ConvertRowIdToColumn convert_rowid_column = 114 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\ConvertRowIdToColumn $var
     * @return $this
     */
    public function setConvertRowidColumn($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\ConvertRowIdToColumn::class);
        $this->writeOneof(114, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify the primary key for a table
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SetTablePrimaryKey set_table_primary_key = 115 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\SetTablePrimaryKey|null
     */
    public function getSetTablePrimaryKey()
    {
        return $this->readOneof(115);
    }

    public function hasSetTablePrimaryKey()
    {
        return $this->hasOneof(115);
    }

    /**
     * Optional. Rule to specify the primary key for a table
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SetTablePrimaryKey set_table_primary_key = 115 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\SetTablePrimaryKey $var
     * @return $this
     */
    public function setSetTablePrimaryKey($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\SetTablePrimaryKey::class);
        $this->writeOneof(115, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify how a single package is converted.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SinglePackageChange single_package_change = 116 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\SinglePackageChange|null
     */
    public function getSinglePackageChange()
    {
        return $this->readOneof(116);
    }

    public function hasSinglePackageChange()
    {
        return $this->hasOneof(116);
    }

    /**
     * Optional. Rule to specify how a single package is converted.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SinglePackageChange single_package_change = 116 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\SinglePackageChange $var
     * @return $this
     */
    public function setSinglePackageChange($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\SinglePackageChange::class);
        $this->writeOneof(116, $var);

        return $this;
    }

    /**
     * Optional. Rule to change the sql code for an entity, for example,
     * function, procedure.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SourceSqlChange source_sql_change = 117 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\SourceSqlChange|null
     */
    public function getSourceSqlChange()
    {
        return $this->readOneof(117);
    }

    public function hasSourceSqlChange()
    {
        return $this->hasOneof(117);
    }

    /**
     * Optional. Rule to change the sql code for an entity, for example,
     * function, procedure.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.SourceSqlChange source_sql_change = 117 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\SourceSqlChange $var
     * @return $this
     */
    public function setSourceSqlChange($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\SourceSqlChange::class);
        $this->writeOneof(117, $var);

        return $this;
    }

    /**
     * Optional. Rule to specify the list of columns to include or exclude from
     * a table.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.FilterTableColumns filter_table_columns = 118 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\CloudDms\V1\FilterTableColumns|null
     */
    public function getFilterTableColumns()
    {
        return $this->readOneof(118);
    }

    public function hasFilterTableColumns()
    {
        return $this->hasOneof(118);
    }

    /**
     * Optional. Rule to specify the list of columns to include or exclude from
     * a table.
     *
     * Generated from protobuf field <code>.google.cloud.clouddms.v1.FilterTableColumns filter_table_columns = 118 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\CloudDms\V1\FilterTableColumns $var
     * @return $this
     */
    public function setFilterTableColumns($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\CloudDms\V1\FilterTableColumns::class);
        $this->writeOneof(118, $var);

        return $this;
    }

    /**
     * @return string
     */
    public function getDetails()
    {
        return $this->whichOneof("details");
    }

}

