diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto index ae940e744d4..ea123035429 100644 --- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto +++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto @@ -312,6 +312,10 @@ message WorkerPoolSpec { // Optional. List of NFS mount spec. repeated NfsMount nfs_mounts = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. List of Lustre mounts. + repeated LustreMount lustre_mounts = 9 + [(google.api.field_behavior) = OPTIONAL]; + // Disk spec. DiskSpec disk_spec = 5; } diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/machine_resources.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/machine_resources.proto index e82856202e0..41ed31300ab 100644 --- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/machine_resources.proto +++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/machine_resources.proto @@ -85,35 +85,31 @@ message MachineSpec { ]; } -// A description of resources that are dedicated to a DeployedModel, and -// that need a higher degree of manual configuration. +// A description of resources that are dedicated to a DeployedModel or +// DeployedIndex, and that need a higher degree of manual configuration. message DedicatedResources { - // Required. Immutable. The specification of a single machine used by the - // prediction. + // Required. Immutable. The specification of a single machine being used. MachineSpec machine_spec = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; - // Required. Immutable. The minimum number of machine replicas this - // DeployedModel will be always deployed on. This value must be greater than - // or equal to 1. + // Required. Immutable. The minimum number of machine replicas that will be + // always deployed on. This value must be greater than or equal to 1. // - // If traffic against the DeployedModel increases, it may dynamically be - // deployed onto more replicas, and as traffic decreases, some of these extra - // replicas may be freed. + // If traffic increases, it may dynamically be deployed onto more replicas, + // and as traffic decreases, some of these extra replicas may be freed. int32 min_replica_count = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE ]; - // Immutable. The maximum number of replicas this DeployedModel may be - // deployed on when the traffic against it increases. If the requested value - // is too large, the deployment will error, but if deployment succeeds then - // the ability to scale the model to that many replicas is guaranteed (barring - // service outages). If traffic against the DeployedModel increases beyond - // what its replicas at maximum may handle, a portion of the traffic will be - // dropped. If this value is not provided, will use + // Immutable. The maximum number of replicas that may be deployed on when the + // traffic against it increases. If the requested value is too large, the + // deployment will error, but if deployment succeeds then the ability to scale + // to that many replicas is guaranteed (barring service outages). If traffic + // increases beyond what its replicas at maximum may handle, a portion of the + // traffic will be dropped. If this value is not provided, will use // [min_replica_count][google.cloud.aiplatform.v1.DedicatedResources.min_replica_count] // as the default value. // @@ -124,8 +120,8 @@ message DedicatedResources { int32 max_replica_count = 3 [(google.api.field_behavior) = IMMUTABLE]; // Optional. Number of required available replicas for the deployment to - // succeed. This field is only needed when partial model deployment/mutation - // is desired. If set, the model deploy/mutate operation will succeed once + // succeed. This field is only needed when partial deployment/mutation is + // desired. If set, the deploy/mutate operation will succeed once // available_replica_count reaches required_replica_count, and the rest of // the replicas will be retried. If not set, the default // required_replica_count will be min_replica_count. @@ -166,23 +162,22 @@ message DedicatedResources { // and require only a modest additional configuration. // Each Model supporting these resources documents its specific guidelines. message AutomaticResources { - // Immutable. The minimum number of replicas this DeployedModel will be always - // deployed on. If traffic against it increases, it may dynamically be - // deployed onto more replicas up to + // Immutable. The minimum number of replicas that will be always deployed on. + // If traffic against it increases, it may dynamically be deployed onto more + // replicas up to // [max_replica_count][google.cloud.aiplatform.v1.AutomaticResources.max_replica_count], // and as traffic decreases, some of these extra replicas may be freed. If the // requested value is too large, the deployment will error. int32 min_replica_count = 1 [(google.api.field_behavior) = IMMUTABLE]; - // Immutable. The maximum number of replicas this DeployedModel may be - // deployed on when the traffic against it increases. If the requested value - // is too large, the deployment will error, but if deployment succeeds then - // the ability to scale the model to that many replicas is guaranteed (barring - // service outages). If traffic against the DeployedModel increases beyond - // what its replicas at maximum may handle, a portion of the traffic will be - // dropped. If this value is not provided, a no upper bound for scaling under - // heavy traffic will be assume, though Vertex AI may be unable to scale - // beyond certain replica number. + // Immutable. The maximum number of replicas that may be deployed on when the + // traffic against it increases. If the requested value is too large, the + // deployment will error, but if deployment succeeds then the ability to scale + // to that many replicas is guaranteed (barring service outages). If traffic + // increases beyond what its replicas at maximum may handle, a portion of the + // traffic will be dropped. If this value is not provided, a no upper bound + // for scaling under heavy traffic will be assume, though Vertex AI may be + // unable to scale beyond certain replica number. int32 max_replica_count = 2 [(google.api.field_behavior) = IMMUTABLE]; } @@ -215,9 +210,10 @@ message ResourcesConsumed { // Represents the spec of disk options. message DiskSpec { - // Type of the boot disk (default is "pd-ssd"). - // Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or - // "pd-standard" (Persistent Disk Hard Disk Drive). + // Type of the boot disk. For non-A3U machines, the default value is + // "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". + // Valid values: "pd-ssd" (Persistent Disk Solid State Drive), + // "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced". string boot_disk_type = 1; // Size in GB of the boot disk (default is 100GB). @@ -253,6 +249,22 @@ message NfsMount { string mount_point = 3 [(google.api.field_behavior) = REQUIRED]; } +// Represents a mount configuration for Lustre file system. +message LustreMount { + // Required. IP address of the Lustre instance. + string instance_ip = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unique identifier of the Lustre volume. + string volume_handle = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the Lustre filesystem. + string filesystem = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Destination mount path. The Lustre file system will be mounted + // for the user under /mnt/lustre/ + string mount_point = 4 [(google.api.field_behavior) = REQUIRED]; +} + // The metric specification that defines the target resource utilization // (CPU utilization, accelerator's duty cycle, and so on) for calculating the // desired replica count. @@ -263,6 +275,7 @@ message AutoscalingMetricSpec { // * For Online Prediction: // * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` // * `aiplatform.googleapis.com/prediction/online/cpu/utilization` + // * `aiplatform.googleapis.com/prediction/online/request_count` string metric_name = 1 [(google.api.field_behavior) = REQUIRED]; // The target resource utilization in percentage (1% - 100%) for the given diff --git a/packages/google-cloud-aiplatform/protos/protos.d.ts b/packages/google-cloud-aiplatform/protos/protos.d.ts index 4efaad9943a..e8a828198e8 100644 --- a/packages/google-cloud-aiplatform/protos/protos.d.ts +++ b/packages/google-cloud-aiplatform/protos/protos.d.ts @@ -7568,6 +7568,121 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a LustreMount. */ + interface ILustreMount { + + /** LustreMount instanceIp */ + instanceIp?: (string|null); + + /** LustreMount volumeHandle */ + volumeHandle?: (string|null); + + /** LustreMount filesystem */ + filesystem?: (string|null); + + /** LustreMount mountPoint */ + mountPoint?: (string|null); + } + + /** Represents a LustreMount. */ + class LustreMount implements ILustreMount { + + /** + * Constructs a new LustreMount. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.aiplatform.v1.ILustreMount); + + /** LustreMount instanceIp. */ + public instanceIp: string; + + /** LustreMount volumeHandle. */ + public volumeHandle: string; + + /** LustreMount filesystem. */ + public filesystem: string; + + /** LustreMount mountPoint. */ + public mountPoint: string; + + /** + * Creates a new LustreMount instance using the specified properties. + * @param [properties] Properties to set + * @returns LustreMount instance + */ + public static create(properties?: google.cloud.aiplatform.v1.ILustreMount): google.cloud.aiplatform.v1.LustreMount; + + /** + * Encodes the specified LustreMount message. Does not implicitly {@link google.cloud.aiplatform.v1.LustreMount.verify|verify} messages. + * @param message LustreMount message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.aiplatform.v1.ILustreMount, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified LustreMount message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1.LustreMount.verify|verify} messages. + * @param message LustreMount message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.aiplatform.v1.ILustreMount, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a LustreMount message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns LustreMount + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.aiplatform.v1.LustreMount; + + /** + * Decodes a LustreMount message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns LustreMount + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.aiplatform.v1.LustreMount; + + /** + * Verifies a LustreMount message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a LustreMount message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns LustreMount + */ + public static fromObject(object: { [k: string]: any }): google.cloud.aiplatform.v1.LustreMount; + + /** + * Creates a plain object from a LustreMount message. Also converts values to other types if specified. + * @param message LustreMount + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.aiplatform.v1.LustreMount, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this LustreMount to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for LustreMount + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of an AutoscalingMetricSpec. */ interface IAutoscalingMetricSpec { @@ -23080,6 +23195,9 @@ export namespace google { /** WorkerPoolSpec nfsMounts */ nfsMounts?: (google.cloud.aiplatform.v1.INfsMount[]|null); + /** WorkerPoolSpec lustreMounts */ + lustreMounts?: (google.cloud.aiplatform.v1.ILustreMount[]|null); + /** WorkerPoolSpec diskSpec */ diskSpec?: (google.cloud.aiplatform.v1.IDiskSpec|null); } @@ -23108,6 +23226,9 @@ export namespace google { /** WorkerPoolSpec nfsMounts. */ public nfsMounts: google.cloud.aiplatform.v1.INfsMount[]; + /** WorkerPoolSpec lustreMounts. */ + public lustreMounts: google.cloud.aiplatform.v1.ILustreMount[]; + /** WorkerPoolSpec diskSpec. */ public diskSpec?: (google.cloud.aiplatform.v1.IDiskSpec|null); diff --git a/packages/google-cloud-aiplatform/protos/protos.js b/packages/google-cloud-aiplatform/protos/protos.js index de5a0000971..6bee9e4c206 100644 --- a/packages/google-cloud-aiplatform/protos/protos.js +++ b/packages/google-cloud-aiplatform/protos/protos.js @@ -19364,6 +19364,281 @@ return NfsMount; })(); + v1.LustreMount = (function() { + + /** + * Properties of a LustreMount. + * @memberof google.cloud.aiplatform.v1 + * @interface ILustreMount + * @property {string|null} [instanceIp] LustreMount instanceIp + * @property {string|null} [volumeHandle] LustreMount volumeHandle + * @property {string|null} [filesystem] LustreMount filesystem + * @property {string|null} [mountPoint] LustreMount mountPoint + */ + + /** + * Constructs a new LustreMount. + * @memberof google.cloud.aiplatform.v1 + * @classdesc Represents a LustreMount. + * @implements ILustreMount + * @constructor + * @param {google.cloud.aiplatform.v1.ILustreMount=} [properties] Properties to set + */ + function LustreMount(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * LustreMount instanceIp. + * @member {string} instanceIp + * @memberof google.cloud.aiplatform.v1.LustreMount + * @instance + */ + LustreMount.prototype.instanceIp = ""; + + /** + * LustreMount volumeHandle. + * @member {string} volumeHandle + * @memberof google.cloud.aiplatform.v1.LustreMount + * @instance + */ + LustreMount.prototype.volumeHandle = ""; + + /** + * LustreMount filesystem. + * @member {string} filesystem + * @memberof google.cloud.aiplatform.v1.LustreMount + * @instance + */ + LustreMount.prototype.filesystem = ""; + + /** + * LustreMount mountPoint. + * @member {string} mountPoint + * @memberof google.cloud.aiplatform.v1.LustreMount + * @instance + */ + LustreMount.prototype.mountPoint = ""; + + /** + * Creates a new LustreMount instance using the specified properties. + * @function create + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {google.cloud.aiplatform.v1.ILustreMount=} [properties] Properties to set + * @returns {google.cloud.aiplatform.v1.LustreMount} LustreMount instance + */ + LustreMount.create = function create(properties) { + return new LustreMount(properties); + }; + + /** + * Encodes the specified LustreMount message. Does not implicitly {@link google.cloud.aiplatform.v1.LustreMount.verify|verify} messages. + * @function encode + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {google.cloud.aiplatform.v1.ILustreMount} message LustreMount message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + LustreMount.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.instanceIp != null && Object.hasOwnProperty.call(message, "instanceIp")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.instanceIp); + if (message.volumeHandle != null && Object.hasOwnProperty.call(message, "volumeHandle")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.volumeHandle); + if (message.filesystem != null && Object.hasOwnProperty.call(message, "filesystem")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.filesystem); + if (message.mountPoint != null && Object.hasOwnProperty.call(message, "mountPoint")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.mountPoint); + return writer; + }; + + /** + * Encodes the specified LustreMount message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1.LustreMount.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {google.cloud.aiplatform.v1.ILustreMount} message LustreMount message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + LustreMount.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a LustreMount message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.aiplatform.v1.LustreMount} LustreMount + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + LustreMount.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.aiplatform.v1.LustreMount(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.instanceIp = reader.string(); + break; + } + case 2: { + message.volumeHandle = reader.string(); + break; + } + case 3: { + message.filesystem = reader.string(); + break; + } + case 4: { + message.mountPoint = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a LustreMount message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.aiplatform.v1.LustreMount} LustreMount + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + LustreMount.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a LustreMount message. + * @function verify + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + LustreMount.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.instanceIp != null && message.hasOwnProperty("instanceIp")) + if (!$util.isString(message.instanceIp)) + return "instanceIp: string expected"; + if (message.volumeHandle != null && message.hasOwnProperty("volumeHandle")) + if (!$util.isString(message.volumeHandle)) + return "volumeHandle: string expected"; + if (message.filesystem != null && message.hasOwnProperty("filesystem")) + if (!$util.isString(message.filesystem)) + return "filesystem: string expected"; + if (message.mountPoint != null && message.hasOwnProperty("mountPoint")) + if (!$util.isString(message.mountPoint)) + return "mountPoint: string expected"; + return null; + }; + + /** + * Creates a LustreMount message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.aiplatform.v1.LustreMount} LustreMount + */ + LustreMount.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.aiplatform.v1.LustreMount) + return object; + var message = new $root.google.cloud.aiplatform.v1.LustreMount(); + if (object.instanceIp != null) + message.instanceIp = String(object.instanceIp); + if (object.volumeHandle != null) + message.volumeHandle = String(object.volumeHandle); + if (object.filesystem != null) + message.filesystem = String(object.filesystem); + if (object.mountPoint != null) + message.mountPoint = String(object.mountPoint); + return message; + }; + + /** + * Creates a plain object from a LustreMount message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {google.cloud.aiplatform.v1.LustreMount} message LustreMount + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + LustreMount.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.instanceIp = ""; + object.volumeHandle = ""; + object.filesystem = ""; + object.mountPoint = ""; + } + if (message.instanceIp != null && message.hasOwnProperty("instanceIp")) + object.instanceIp = message.instanceIp; + if (message.volumeHandle != null && message.hasOwnProperty("volumeHandle")) + object.volumeHandle = message.volumeHandle; + if (message.filesystem != null && message.hasOwnProperty("filesystem")) + object.filesystem = message.filesystem; + if (message.mountPoint != null && message.hasOwnProperty("mountPoint")) + object.mountPoint = message.mountPoint; + return object; + }; + + /** + * Converts this LustreMount to JSON. + * @function toJSON + * @memberof google.cloud.aiplatform.v1.LustreMount + * @instance + * @returns {Object.} JSON object + */ + LustreMount.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for LustreMount + * @function getTypeUrl + * @memberof google.cloud.aiplatform.v1.LustreMount + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + LustreMount.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.aiplatform.v1.LustreMount"; + }; + + return LustreMount; + })(); + v1.AutoscalingMetricSpec = (function() { /** @@ -59947,6 +60222,7 @@ * @property {google.cloud.aiplatform.v1.IMachineSpec|null} [machineSpec] WorkerPoolSpec machineSpec * @property {number|Long|null} [replicaCount] WorkerPoolSpec replicaCount * @property {Array.|null} [nfsMounts] WorkerPoolSpec nfsMounts + * @property {Array.|null} [lustreMounts] WorkerPoolSpec lustreMounts * @property {google.cloud.aiplatform.v1.IDiskSpec|null} [diskSpec] WorkerPoolSpec diskSpec */ @@ -59960,6 +60236,7 @@ */ function WorkerPoolSpec(properties) { this.nfsMounts = []; + this.lustreMounts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -60006,6 +60283,14 @@ */ WorkerPoolSpec.prototype.nfsMounts = $util.emptyArray; + /** + * WorkerPoolSpec lustreMounts. + * @member {Array.} lustreMounts + * @memberof google.cloud.aiplatform.v1.WorkerPoolSpec + * @instance + */ + WorkerPoolSpec.prototype.lustreMounts = $util.emptyArray; + /** * WorkerPoolSpec diskSpec. * @member {google.cloud.aiplatform.v1.IDiskSpec|null|undefined} diskSpec @@ -60065,6 +60350,9 @@ $root.google.cloud.aiplatform.v1.ContainerSpec.encode(message.containerSpec, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); if (message.pythonPackageSpec != null && Object.hasOwnProperty.call(message, "pythonPackageSpec")) $root.google.cloud.aiplatform.v1.PythonPackageSpec.encode(message.pythonPackageSpec, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.lustreMounts != null && message.lustreMounts.length) + for (var i = 0; i < message.lustreMounts.length; ++i) + $root.google.cloud.aiplatform.v1.LustreMount.encode(message.lustreMounts[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); return writer; }; @@ -60123,6 +60411,12 @@ message.nfsMounts.push($root.google.cloud.aiplatform.v1.NfsMount.decode(reader, reader.uint32())); break; } + case 9: { + if (!(message.lustreMounts && message.lustreMounts.length)) + message.lustreMounts = []; + message.lustreMounts.push($root.google.cloud.aiplatform.v1.LustreMount.decode(reader, reader.uint32())); + break; + } case 5: { message.diskSpec = $root.google.cloud.aiplatform.v1.DiskSpec.decode(reader, reader.uint32()); break; @@ -60198,6 +60492,15 @@ return "nfsMounts." + error; } } + if (message.lustreMounts != null && message.hasOwnProperty("lustreMounts")) { + if (!Array.isArray(message.lustreMounts)) + return "lustreMounts: array expected"; + for (var i = 0; i < message.lustreMounts.length; ++i) { + var error = $root.google.cloud.aiplatform.v1.LustreMount.verify(message.lustreMounts[i]); + if (error) + return "lustreMounts." + error; + } + } if (message.diskSpec != null && message.hasOwnProperty("diskSpec")) { var error = $root.google.cloud.aiplatform.v1.DiskSpec.verify(message.diskSpec); if (error) @@ -60252,6 +60555,16 @@ message.nfsMounts[i] = $root.google.cloud.aiplatform.v1.NfsMount.fromObject(object.nfsMounts[i]); } } + if (object.lustreMounts) { + if (!Array.isArray(object.lustreMounts)) + throw TypeError(".google.cloud.aiplatform.v1.WorkerPoolSpec.lustreMounts: array expected"); + message.lustreMounts = []; + for (var i = 0; i < object.lustreMounts.length; ++i) { + if (typeof object.lustreMounts[i] !== "object") + throw TypeError(".google.cloud.aiplatform.v1.WorkerPoolSpec.lustreMounts: object expected"); + message.lustreMounts[i] = $root.google.cloud.aiplatform.v1.LustreMount.fromObject(object.lustreMounts[i]); + } + } if (object.diskSpec != null) { if (typeof object.diskSpec !== "object") throw TypeError(".google.cloud.aiplatform.v1.WorkerPoolSpec.diskSpec: object expected"); @@ -60273,8 +60586,10 @@ if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) + if (options.arrays || options.defaults) { object.nfsMounts = []; + object.lustreMounts = []; + } if (options.defaults) { object.machineSpec = null; if ($util.Long) { @@ -60308,6 +60623,11 @@ if (options.oneofs) object.task = "pythonPackageSpec"; } + if (message.lustreMounts && message.lustreMounts.length) { + object.lustreMounts = []; + for (var j = 0; j < message.lustreMounts.length; ++j) + object.lustreMounts[j] = $root.google.cloud.aiplatform.v1.LustreMount.toObject(message.lustreMounts[j], options); + } return object; }; diff --git a/packages/google-cloud-aiplatform/protos/protos.json b/packages/google-cloud-aiplatform/protos/protos.json index edeb83ac08d..bc8ac100b31 100644 --- a/packages/google-cloud-aiplatform/protos/protos.json +++ b/packages/google-cloud-aiplatform/protos/protos.json @@ -1805,6 +1805,38 @@ } } }, + "LustreMount": { + "fields": { + "instanceIp": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "volumeHandle": { + "type": "string", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "filesystem": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "mountPoint": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + } + }, "AutoscalingMetricSpec": { "fields": { "metricName": { @@ -6256,6 +6288,14 @@ "(google.api.field_behavior)": "OPTIONAL" } }, + "lustreMounts": { + "rule": "repeated", + "type": "LustreMount", + "id": 9, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, "diskSpec": { "type": "DiskSpec", "id": 5