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

namespace Google\Cloud\SecurityCenter\V1;

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

/**
 * Represents an access event.
 *
 * Generated from protobuf message <code>google.cloud.securitycenter.v1.Access</code>
 */
class Access extends \Google\Protobuf\Internal\Message
{
    /**
     * Associated email, such as "foo&#64;google.com".
     *
     * Generated from protobuf field <code>string principal_email = 1;</code>
     */
    private $principal_email = '';
    /**
     * Caller's IP address, such as "1.1.1.1".
     *
     * Generated from protobuf field <code>string caller_ip = 2;</code>
     */
    private $caller_ip = '';
    /**
     * The caller IP's geolocation, which identifies where the call came from.
     *
     * Generated from protobuf field <code>.google.cloud.securitycenter.v1.Geolocation caller_ip_geo = 3;</code>
     */
    private $caller_ip_geo = null;
    /**
     * What kind of user agent is associated, e.g. operating system shells,
     * embedded or stand-alone applications, etc.
     *
     * Generated from protobuf field <code>string user_agent_family = 4;</code>
     */
    private $user_agent_family = '';
    /**
     * This is the API service that the service account made a call to, e.g.
     * "iam.googleapis.com"
     *
     * Generated from protobuf field <code>string service_name = 5;</code>
     */
    private $service_name = '';
    /**
     * The method that the service account called, e.g. "SetIamPolicy".
     *
     * Generated from protobuf field <code>string method_name = 6;</code>
     */
    private $method_name = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $principal_email
     *           Associated email, such as "foo&#64;google.com".
     *     @type string $caller_ip
     *           Caller's IP address, such as "1.1.1.1".
     *     @type \Google\Cloud\SecurityCenter\V1\Geolocation $caller_ip_geo
     *           The caller IP's geolocation, which identifies where the call came from.
     *     @type string $user_agent_family
     *           What kind of user agent is associated, e.g. operating system shells,
     *           embedded or stand-alone applications, etc.
     *     @type string $service_name
     *           This is the API service that the service account made a call to, e.g.
     *           "iam.googleapis.com"
     *     @type string $method_name
     *           The method that the service account called, e.g. "SetIamPolicy".
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Securitycenter\V1\Access::initOnce();
        parent::__construct($data);
    }

    /**
     * Associated email, such as "foo&#64;google.com".
     *
     * Generated from protobuf field <code>string principal_email = 1;</code>
     * @return string
     */
    public function getPrincipalEmail()
    {
        return $this->principal_email;
    }

    /**
     * Associated email, such as "foo&#64;google.com".
     *
     * Generated from protobuf field <code>string principal_email = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setPrincipalEmail($var)
    {
        GPBUtil::checkString($var, True);
        $this->principal_email = $var;

        return $this;
    }

    /**
     * Caller's IP address, such as "1.1.1.1".
     *
     * Generated from protobuf field <code>string caller_ip = 2;</code>
     * @return string
     */
    public function getCallerIp()
    {
        return $this->caller_ip;
    }

    /**
     * Caller's IP address, such as "1.1.1.1".
     *
     * Generated from protobuf field <code>string caller_ip = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setCallerIp($var)
    {
        GPBUtil::checkString($var, True);
        $this->caller_ip = $var;

        return $this;
    }

    /**
     * The caller IP's geolocation, which identifies where the call came from.
     *
     * Generated from protobuf field <code>.google.cloud.securitycenter.v1.Geolocation caller_ip_geo = 3;</code>
     * @return \Google\Cloud\SecurityCenter\V1\Geolocation|null
     */
    public function getCallerIpGeo()
    {
        return $this->caller_ip_geo;
    }

    public function hasCallerIpGeo()
    {
        return isset($this->caller_ip_geo);
    }

    public function clearCallerIpGeo()
    {
        unset($this->caller_ip_geo);
    }

    /**
     * The caller IP's geolocation, which identifies where the call came from.
     *
     * Generated from protobuf field <code>.google.cloud.securitycenter.v1.Geolocation caller_ip_geo = 3;</code>
     * @param \Google\Cloud\SecurityCenter\V1\Geolocation $var
     * @return $this
     */
    public function setCallerIpGeo($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\SecurityCenter\V1\Geolocation::class);
        $this->caller_ip_geo = $var;

        return $this;
    }

    /**
     * What kind of user agent is associated, e.g. operating system shells,
     * embedded or stand-alone applications, etc.
     *
     * Generated from protobuf field <code>string user_agent_family = 4;</code>
     * @return string
     */
    public function getUserAgentFamily()
    {
        return $this->user_agent_family;
    }

    /**
     * What kind of user agent is associated, e.g. operating system shells,
     * embedded or stand-alone applications, etc.
     *
     * Generated from protobuf field <code>string user_agent_family = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setUserAgentFamily($var)
    {
        GPBUtil::checkString($var, True);
        $this->user_agent_family = $var;

        return $this;
    }

    /**
     * This is the API service that the service account made a call to, e.g.
     * "iam.googleapis.com"
     *
     * Generated from protobuf field <code>string service_name = 5;</code>
     * @return string
     */
    public function getServiceName()
    {
        return $this->service_name;
    }

    /**
     * This is the API service that the service account made a call to, e.g.
     * "iam.googleapis.com"
     *
     * Generated from protobuf field <code>string service_name = 5;</code>
     * @param string $var
     * @return $this
     */
    public function setServiceName($var)
    {
        GPBUtil::checkString($var, True);
        $this->service_name = $var;

        return $this;
    }

    /**
     * The method that the service account called, e.g. "SetIamPolicy".
     *
     * Generated from protobuf field <code>string method_name = 6;</code>
     * @return string
     */
    public function getMethodName()
    {
        return $this->method_name;
    }

    /**
     * The method that the service account called, e.g. "SetIamPolicy".
     *
     * Generated from protobuf field <code>string method_name = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setMethodName($var)
    {
        GPBUtil::checkString($var, True);
        $this->method_name = $var;

        return $this;
    }

}

