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

namespace Google\Cloud\AIPlatform\V1\ReasoningEngineSpec\SourceCodeSpec;

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

/**
 * Specification for running a Python application from source.
 *
 * Generated from protobuf message <code>google.cloud.aiplatform.v1.ReasoningEngineSpec.SourceCodeSpec.PythonSpec</code>
 */
class PythonSpec extends \Google\Protobuf\Internal\Message
{
    /**
     * Optional. The version of Python to use. Support version
     * includes 3.9, 3.10, 3.11, 3.12, 3.13.
     * If not specified, default value is 3.10.
     *
     * Generated from protobuf field <code>string version = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $version = '';
    /**
     * Optional. The Python module to load as the entrypoint, specified as a
     * fully qualified module name. For example: path.to.agent.
     * If not specified, defaults to "agent".
     * The project root will be added to Python sys.path, allowing imports
     * to be specified relative to the root.
     *
     * Generated from protobuf field <code>string entrypoint_module = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $entrypoint_module = '';
    /**
     * Optional. The name of the callable object within the
     * `entrypoint_module` to use as the application If not specified,
     * defaults to "root_agent".
     *
     * Generated from protobuf field <code>string entrypoint_object = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $entrypoint_object = '';
    /**
     * Optional. The path to the requirements file, relative to the source
     * root. If not specified, defaults to "requirements.txt".
     *
     * Generated from protobuf field <code>string requirements_file = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     */
    protected $requirements_file = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $version
     *           Optional. The version of Python to use. Support version
     *           includes 3.9, 3.10, 3.11, 3.12, 3.13.
     *           If not specified, default value is 3.10.
     *     @type string $entrypoint_module
     *           Optional. The Python module to load as the entrypoint, specified as a
     *           fully qualified module name. For example: path.to.agent.
     *           If not specified, defaults to "agent".
     *           The project root will be added to Python sys.path, allowing imports
     *           to be specified relative to the root.
     *     @type string $entrypoint_object
     *           Optional. The name of the callable object within the
     *           `entrypoint_module` to use as the application If not specified,
     *           defaults to "root_agent".
     *     @type string $requirements_file
     *           Optional. The path to the requirements file, relative to the source
     *           root. If not specified, defaults to "requirements.txt".
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Aiplatform\V1\ReasoningEngine::initOnce();
        parent::__construct($data);
    }

    /**
     * Optional. The version of Python to use. Support version
     * includes 3.9, 3.10, 3.11, 3.12, 3.13.
     * If not specified, default value is 3.10.
     *
     * Generated from protobuf field <code>string version = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getVersion()
    {
        return $this->version;
    }

    /**
     * Optional. The version of Python to use. Support version
     * includes 3.9, 3.10, 3.11, 3.12, 3.13.
     * If not specified, default value is 3.10.
     *
     * Generated from protobuf field <code>string version = 1 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->version = $var;

        return $this;
    }

    /**
     * Optional. The Python module to load as the entrypoint, specified as a
     * fully qualified module name. For example: path.to.agent.
     * If not specified, defaults to "agent".
     * The project root will be added to Python sys.path, allowing imports
     * to be specified relative to the root.
     *
     * Generated from protobuf field <code>string entrypoint_module = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getEntrypointModule()
    {
        return $this->entrypoint_module;
    }

    /**
     * Optional. The Python module to load as the entrypoint, specified as a
     * fully qualified module name. For example: path.to.agent.
     * If not specified, defaults to "agent".
     * The project root will be added to Python sys.path, allowing imports
     * to be specified relative to the root.
     *
     * Generated from protobuf field <code>string entrypoint_module = 2 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setEntrypointModule($var)
    {
        GPBUtil::checkString($var, True);
        $this->entrypoint_module = $var;

        return $this;
    }

    /**
     * Optional. The name of the callable object within the
     * `entrypoint_module` to use as the application If not specified,
     * defaults to "root_agent".
     *
     * Generated from protobuf field <code>string entrypoint_object = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getEntrypointObject()
    {
        return $this->entrypoint_object;
    }

    /**
     * Optional. The name of the callable object within the
     * `entrypoint_module` to use as the application If not specified,
     * defaults to "root_agent".
     *
     * Generated from protobuf field <code>string entrypoint_object = 3 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setEntrypointObject($var)
    {
        GPBUtil::checkString($var, True);
        $this->entrypoint_object = $var;

        return $this;
    }

    /**
     * Optional. The path to the requirements file, relative to the source
     * root. If not specified, defaults to "requirements.txt".
     *
     * Generated from protobuf field <code>string requirements_file = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @return string
     */
    public function getRequirementsFile()
    {
        return $this->requirements_file;
    }

    /**
     * Optional. The path to the requirements file, relative to the source
     * root. If not specified, defaults to "requirements.txt".
     *
     * Generated from protobuf field <code>string requirements_file = 4 [(.google.api.field_behavior) = OPTIONAL];</code>
     * @param string $var
     * @return $this
     */
    public function setRequirementsFile($var)
    {
        GPBUtil::checkString($var, True);
        $this->requirements_file = $var;

        return $this;
    }

}

