@@ -34,7 +34,8 @@ option ruby_package = "Google::Cloud::AIPlatform::V1";
3434
3535// ReasoningEngine configurations
3636message ReasoningEngineSpec {
37- // User provided package spec like pickled object and package requirements.
37+ // User-provided package specification, containing pickled object and package
38+ // requirements.
3839 message PackageSpec {
3940 // Optional. The Cloud Storage URI of the pickled python object.
4041 string pickle_object_gcs_uri = 1 [(google.api.field_behavior ) = OPTIONAL ];
@@ -98,6 +99,66 @@ message ReasoningEngineSpec {
9899 [(google.api.field_behavior ) = OPTIONAL ];
99100 }
100101
102+ // Specification for deploying from source code.
103+ message SourceCodeSpec {
104+ // Specifies source code provided as a byte stream.
105+ message InlineSource {
106+ // Required. Input only. The application source code archive, provided as
107+ // a compressed tarball
108+ // (.tar.gz) file.
109+ bytes source_archive = 1 [
110+ (google.api.field_behavior ) = REQUIRED ,
111+ (google.api.field_behavior ) = INPUT_ONLY
112+ ];
113+ }
114+
115+ // Specification for running a Python application from source.
116+ message PythonSpec {
117+ // Optional. The version of Python to use. Support version
118+ // includes 3.9, 3.10, 3.11, 3.12, 3.13.
119+ // If not specified, default value is 3.10.
120+ string version = 1 [(google.api.field_behavior ) = OPTIONAL ];
121+
122+ // Optional. The Python module to load as the entrypoint, specified as a
123+ // fully qualified module name. For example: path.to.agent.
124+ // If not specified, defaults to "agent".
125+ //
126+ // The project root will be added to Python sys.path, allowing imports
127+ // to be specified relative to the root.
128+ string entrypoint_module = 2 [(google.api.field_behavior ) = OPTIONAL ];
129+
130+ // Optional. The name of the callable object within the
131+ // `entrypoint_module` to use as the application If not specified,
132+ // defaults to "root_agent".
133+ string entrypoint_object = 3 [(google.api.field_behavior ) = OPTIONAL ];
134+
135+ // Optional. The path to the requirements file, relative to the source
136+ // root. If not specified, defaults to "requirements.txt".
137+ string requirements_file = 4 [(google.api.field_behavior ) = OPTIONAL ];
138+ }
139+
140+ // Specifies where the source code is located.
141+ oneof source {
142+ // Source code is provided directly in the request.
143+ InlineSource inline_source = 1 ;
144+ }
145+
146+ // Specifies the language-specific configuration for building and running
147+ // the code.
148+ oneof language_spec {
149+ // Configuration for a Python application.
150+ PythonSpec python_spec = 2 ;
151+ }
152+ }
153+
154+ // Defines the source for the deployment.
155+ // The `package_spec` field should not be set if `deployment_source` is
156+ // specified.
157+ oneof deployment_source {
158+ // Deploy from source code files with a defined entrypoint.
159+ SourceCodeSpec source_code_spec = 11 ;
160+ }
161+
101162 // Optional. The service account that the Reasoning Engine artifact runs as.
102163 // It should have "roles/storage.objectViewer" for reading the user project's
103164 // Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If
@@ -109,6 +170,8 @@ message ReasoningEngineSpec {
109170 // Ignored when users directly specify a deployment image through
110171 // `deployment_spec.first_party_image_override`, but keeping the
111172 // field_behavior to avoid introducing breaking changes.
173+ // The `deployment_source` field should not be set if `package_spec` is
174+ // specified.
112175 PackageSpec package_spec = 2 [(google.api.field_behavior ) = OPTIONAL ];
113176
114177 // Optional. The specification of a Reasoning Engine deployment.
@@ -165,4 +228,7 @@ message ReasoningEngine {
165228 // ReasoningEngine and all sub-resources of this ReasoningEngine will be
166229 // secured by this key.
167230 EncryptionSpec encryption_spec = 11 ;
231+
232+ // Labels for the ReasoningEngine.
233+ map <string , string > labels = 17 ;
168234}
0 commit comments