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

namespace Google\Cloud\ModelArmor\V1;

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

/**
 * Sensitive Data Protection settings.
 *
 * Generated from protobuf message <code>google.cloud.modelarmor.v1.SdpFilterSettings</code>
 */
class SdpFilterSettings extends \Google\Protobuf\Internal\Message
{
    protected $sdp_configuration;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Google\Cloud\ModelArmor\V1\SdpBasicConfig $basic_config
     *           Optional. Basic Sensitive Data Protection configuration inspects the
     *           content for sensitive data using a fixed set of six info-types. Sensitive
     *           Data Protection templates cannot be used with basic configuration. Only
     *           Sensitive Data Protection inspection operation is supported with basic
     *           configuration.
     *     @type \Google\Cloud\ModelArmor\V1\SdpAdvancedConfig $advanced_config
     *           Optional. Advanced Sensitive Data Protection configuration which enables
     *           use of Sensitive Data Protection templates. Supports both Sensitive Data
     *           Protection inspection and de-identification operations.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Modelarmor\V1\Service::initOnce();
        parent::__construct($data);
    }

    /**
     * Optional. Basic Sensitive Data Protection configuration inspects the
     * content for sensitive data using a fixed set of six info-types. Sensitive
     * Data Protection templates cannot be used with basic configuration. Only
     * Sensitive Data Protection inspection operation is supported with basic
     * configuration.
     *
     * Generated from protobuf field <code>.google.cloud.modelarmor.v1.SdpBasicConfig basic_config = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\ModelArmor\V1\SdpBasicConfig|null
     */
    public function getBasicConfig()
    {
        return $this->readOneof(1);
    }

    public function hasBasicConfig()
    {
        return $this->hasOneof(1);
    }

    /**
     * Optional. Basic Sensitive Data Protection configuration inspects the
     * content for sensitive data using a fixed set of six info-types. Sensitive
     * Data Protection templates cannot be used with basic configuration. Only
     * Sensitive Data Protection inspection operation is supported with basic
     * configuration.
     *
     * Generated from protobuf field <code>.google.cloud.modelarmor.v1.SdpBasicConfig basic_config = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\ModelArmor\V1\SdpBasicConfig $var
     * @return $this
     */
    public function setBasicConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\ModelArmor\V1\SdpBasicConfig::class);
        $this->writeOneof(1, $var);

        return $this;
    }

    /**
     * Optional. Advanced Sensitive Data Protection configuration which enables
     * use of Sensitive Data Protection templates. Supports both Sensitive Data
     * Protection inspection and de-identification operations.
     *
     * Generated from protobuf field <code>.google.cloud.modelarmor.v1.SdpAdvancedConfig advanced_config = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return \Google\Cloud\ModelArmor\V1\SdpAdvancedConfig|null
     */
    public function getAdvancedConfig()
    {
        return $this->readOneof(2);
    }

    public function hasAdvancedConfig()
    {
        return $this->hasOneof(2);
    }

    /**
     * Optional. Advanced Sensitive Data Protection configuration which enables
     * use of Sensitive Data Protection templates. Supports both Sensitive Data
     * Protection inspection and de-identification operations.
     *
     * Generated from protobuf field <code>.google.cloud.modelarmor.v1.SdpAdvancedConfig advanced_config = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param \Google\Cloud\ModelArmor\V1\SdpAdvancedConfig $var
     * @return $this
     */
    public function setAdvancedConfig($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\ModelArmor\V1\SdpAdvancedConfig::class);
        $this->writeOneof(2, $var);

        return $this;
    }

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

}

