@@ -35,7 +35,8 @@ option ruby_package = "Google::Cloud::AIPlatform::V1beta1";
3535
3636// ReasoningEngine configurations
3737message ReasoningEngineSpec {
38- // User provided package spec like pickled object and package requirements.
38+ // User-provided package specification, containing pickled object and package
39+ // requirements.
3940 message PackageSpec {
4041 // Optional. The Cloud Storage URI of the pickled python object.
4142 string pickle_object_gcs_uri = 1 [(google.api.field_behavior ) = OPTIONAL ];
@@ -72,20 +73,23 @@ message ReasoningEngineSpec {
7273 [(google.api.field_behavior ) = OPTIONAL ];
7374
7475 // Optional. The minimum number of application instances that will be kept
75- // running at all times. Defaults to 1.
76+ // running at all times. Defaults to 1. Range: [0, 10].
7677 optional int32 min_instances = 5 [(google.api.field_behavior ) = OPTIONAL ];
7778
7879 // Optional. The maximum number of application instances that can be
79- // launched to handle increased traffic. Defaults to 100.
80+ // launched to handle increased traffic. Defaults to 100. Range: [1, 1000].
81+ //
82+ // If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
8083 optional int32 max_instances = 6 [(google.api.field_behavior ) = OPTIONAL ];
8184
8285 // Optional. Resource limits for each container. Only 'cpu' and 'memory'
8386 // keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}.
8487 //
85- // * The only supported values for CPU are '1', '2', '4', and '8'. For
88+ // * The only supported values for CPU are '1', '2', '4', '6' and '8'. For
8689 // more information, go to
8790 // https://cloud.google.com/run/docs/configuring/cpu.
88- // * For supported 'memory' values and syntax, go to
91+ // * The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'.
92+ // * For required cpu on different memory values, go to
8993 // https://cloud.google.com/run/docs/configuring/memory-limits
9094 map <string , string > resource_limits = 7
9195 [(google.api.field_behavior ) = OPTIONAL ];
@@ -96,6 +100,66 @@ message ReasoningEngineSpec {
96100 [(google.api.field_behavior ) = OPTIONAL ];
97101 }
98102
103+ // Specification for deploying from source code.
104+ message SourceCodeSpec {
105+ // Specifies source code provided as a byte stream.
106+ message InlineSource {
107+ // Required. Input only. The application source code archive, provided as
108+ // a compressed tarball
109+ // (.tar.gz) file.
110+ bytes source_archive = 1 [
111+ (google.api.field_behavior ) = REQUIRED ,
112+ (google.api.field_behavior ) = INPUT_ONLY
113+ ];
114+ }
115+
116+ // Specification for running a Python application from source.
117+ message PythonSpec {
118+ // Optional. The version of Python to use. Support version
119+ // includes 3.9, 3.10, 3.11, 3.12, 3.13.
120+ // If not specified, default value is 3.10.
121+ string version = 1 [(google.api.field_behavior ) = OPTIONAL ];
122+
123+ // Optional. The Python module to load as the entrypoint, specified as a
124+ // fully qualified module name. For example: path.to.agent.
125+ // If not specified, defaults to "agent".
126+ //
127+ // The project root will be added to Python sys.path, allowing imports
128+ // to be specified relative to the root.
129+ string entrypoint_module = 2 [(google.api.field_behavior ) = OPTIONAL ];
130+
131+ // Optional. The name of the callable object within the
132+ // `entrypoint_module` to use as the application If not specified,
133+ // defaults to "root_agent".
134+ string entrypoint_object = 3 [(google.api.field_behavior ) = OPTIONAL ];
135+
136+ // Optional. The path to the requirements file, relative to the source
137+ // root. If not specified, defaults to "requirements.txt".
138+ string requirements_file = 4 [(google.api.field_behavior ) = OPTIONAL ];
139+ }
140+
141+ // Specifies where the source code is located.
142+ oneof source {
143+ // Source code is provided directly in the request.
144+ InlineSource inline_source = 1 ;
145+ }
146+
147+ // Specifies the language-specific configuration for building and running
148+ // the code.
149+ oneof language_spec {
150+ // Configuration for a Python application.
151+ PythonSpec python_spec = 2 ;
152+ }
153+ }
154+
155+ // Defines the source for the deployment.
156+ // The `package_spec` field should not be set if `deployment_source` is
157+ // specified.
158+ oneof deployment_source {
159+ // Deploy from source code files with a defined entrypoint.
160+ SourceCodeSpec source_code_spec = 11 ;
161+ }
162+
99163 // Optional. The service account that the Reasoning Engine artifact runs as.
100164 // It should have "roles/storage.objectViewer" for reading the user project's
101165 // Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If
@@ -107,6 +171,8 @@ message ReasoningEngineSpec {
107171 // Ignored when users directly specify a deployment image through
108172 // `deployment_spec.first_party_image_override`, but keeping the
109173 // field_behavior to avoid introducing breaking changes.
174+ // The `deployment_source` field should not be set if `package_spec` is
175+ // specified.
110176 PackageSpec package_spec = 2 [(google.api.field_behavior ) = OPTIONAL ];
111177
112178 // Optional. The specification of a Reasoning Engine deployment.
@@ -168,6 +234,9 @@ message ReasoningEngine {
168234 // ReasoningEngine and all sub-resources of this ReasoningEngine will be
169235 // secured by this key.
170236 EncryptionSpec encryption_spec = 11 ;
237+
238+ // Labels for the ReasoningEngine.
239+ map <string , string > labels = 17 ;
171240}
172241
173242// Configuration for how Agent Engine sub-resources should manage context.
0 commit comments