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

namespace Google\Cloud\Container\V1;

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

/**
 * RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
 * that can be created.
 *
 * Generated from protobuf message <code>google.container.v1.RBACBindingConfig</code>
 */
class RBACBindingConfig extends \Google\Protobuf\Internal\Message
{
    /**
     * Setting this to true will allow any ClusterRoleBinding and RoleBinding
     * with subjets system:anonymous or system:unauthenticated.
     *
     * Generated from protobuf field <code>optional bool enable_insecure_binding_system_unauthenticated = 1;</code>
     */
    protected $enable_insecure_binding_system_unauthenticated = null;
    /**
     * Setting this to true will allow any ClusterRoleBinding and RoleBinding
     * with subjects system:authenticated.
     *
     * Generated from protobuf field <code>optional bool enable_insecure_binding_system_authenticated = 2;</code>
     */
    protected $enable_insecure_binding_system_authenticated = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type bool $enable_insecure_binding_system_unauthenticated
     *           Setting this to true will allow any ClusterRoleBinding and RoleBinding
     *           with subjets system:anonymous or system:unauthenticated.
     *     @type bool $enable_insecure_binding_system_authenticated
     *           Setting this to true will allow any ClusterRoleBinding and RoleBinding
     *           with subjects system:authenticated.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
        parent::__construct($data);
    }

    /**
     * Setting this to true will allow any ClusterRoleBinding and RoleBinding
     * with subjets system:anonymous or system:unauthenticated.
     *
     * Generated from protobuf field <code>optional bool enable_insecure_binding_system_unauthenticated = 1;</code>
     * @return bool
     */
    public function getEnableInsecureBindingSystemUnauthenticated()
    {
        return isset($this->enable_insecure_binding_system_unauthenticated) ? $this->enable_insecure_binding_system_unauthenticated : false;
    }

    public function hasEnableInsecureBindingSystemUnauthenticated()
    {
        return isset($this->enable_insecure_binding_system_unauthenticated);
    }

    public function clearEnableInsecureBindingSystemUnauthenticated()
    {
        unset($this->enable_insecure_binding_system_unauthenticated);
    }

    /**
     * Setting this to true will allow any ClusterRoleBinding and RoleBinding
     * with subjets system:anonymous or system:unauthenticated.
     *
     * Generated from protobuf field <code>optional bool enable_insecure_binding_system_unauthenticated = 1;</code>
     * @param bool $var
     * @return $this
     */
    public function setEnableInsecureBindingSystemUnauthenticated($var)
    {
        GPBUtil::checkBool($var);
        $this->enable_insecure_binding_system_unauthenticated = $var;

        return $this;
    }

    /**
     * Setting this to true will allow any ClusterRoleBinding and RoleBinding
     * with subjects system:authenticated.
     *
     * Generated from protobuf field <code>optional bool enable_insecure_binding_system_authenticated = 2;</code>
     * @return bool
     */
    public function getEnableInsecureBindingSystemAuthenticated()
    {
        return isset($this->enable_insecure_binding_system_authenticated) ? $this->enable_insecure_binding_system_authenticated : false;
    }

    public function hasEnableInsecureBindingSystemAuthenticated()
    {
        return isset($this->enable_insecure_binding_system_authenticated);
    }

    public function clearEnableInsecureBindingSystemAuthenticated()
    {
        unset($this->enable_insecure_binding_system_authenticated);
    }

    /**
     * Setting this to true will allow any ClusterRoleBinding and RoleBinding
     * with subjects system:authenticated.
     *
     * Generated from protobuf field <code>optional bool enable_insecure_binding_system_authenticated = 2;</code>
     * @param bool $var
     * @return $this
     */
    public function setEnableInsecureBindingSystemAuthenticated($var)
    {
        GPBUtil::checkBool($var);
        $this->enable_insecure_binding_system_authenticated = $var;

        return $this;
    }

}

