diff --git a/packages/google-cloud-compute/protos/google/cloud/compute/v1/compute.proto b/packages/google-cloud-compute/protos/google/cloud/compute/v1/compute.proto index a124f33eaa5..25eeeeebd87 100644 --- a/packages/google-cloud-compute/protos/google/cloud/compute/v1/compute.proto +++ b/packages/google-cloud-compute/protos/google/cloud/compute/v1/compute.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ // Generated by the disco-to-proto3-converter. DO NOT EDIT! // Source Discovery file: compute.v1.json -// Source file revision: 20251230 +// Source file revision: 20260106 // API name: compute // API version: v1 @@ -11685,6 +11685,9 @@ message BulkInsertInstanceResource { // The maximum number of instances to create. optional int64 count = 94851343; + // A flexible specification of machine type of instances to create. + optional InstanceFlexibilityPolicy instance_flexibility_policy = 26937090; + // The instance properties defining the VM instances to be created. Required // if sourceInstanceTemplate is not provided. optional InstanceProperties instance_properties = 215355165; @@ -27963,6 +27966,46 @@ message InstanceConsumptionInfo { } +// A flexible specification of machine types for instances to create. +message InstanceFlexibilityPolicy { + // Specification of alternative, flexible instance subsets. + // One of them will be selected to create the instances + // based on various criteria, like: + // - ranks, + // - location policy, + // - current capacity, + // - available reservations (you can specify affinity in + // InstanceProperties), + // - SWAN/GOOSE limitations. + // Key is an arbitrary, unique RFC1035 string that identifies the instance + // selection. + map instance_selections = 22954577; + +} + +// Specification of machine type to use. Every position inside this message +// is an alternative. +// The count specified in the shape flexibility must not exceed the number +// of entries in per_instance_properties or the capacity of the +// name_pattern, if used. +message InstanceFlexibilityPolicyInstanceSelection { + // Disks to be attached to the instances created from in this selection. + // They override the disks specified in the instance properties. + repeated AttachedDisk disks = 95594102; + + // Alternative machine types to use for instances that are created from + // these properties. This field only accepts a machine type names, for + // example `n2-standard-4` and not URLs or partial URLs. + repeated string machine_types = 79720065; + + // Rank when prioritizing the shape flexibilities. + // The instance selections with rank are considered + // first, in the ascending order of the rank. + // If not set, defaults to 0. + optional int64 rank = 3492908; + +} + // Represents an Instance Group resource. // // Instance Groups can be used to configure a target forload @@ -30121,6 +30164,7 @@ message InstancesReportHostAsFaultyRequestFaultReason { SILENT_DATA_CORRUPTION = 111360678; + // Unrecoverable GPU error identified by an XID UNRECOVERABLE_GPU_ERROR = 363710747; } @@ -30916,6 +30960,7 @@ message InterconnectAttachment { // - BPS_20G: 20 Gbit/s // - BPS_50G: 50 Gbit/s // - BPS_100G: 100 Gbit/s + // - BPS_400G: 400 Gbit/s enum Bandwidth { // A value indicating that the enum field is not set. UNDEFINED_BANDWIDTH = 0; @@ -30944,6 +30989,9 @@ message InterconnectAttachment { // 300 Mbit/s BPS_300M = 49607540; + // 400 Gbit/s + BPS_400G = 49637325; + // 400 Mbit/s BPS_400M = 49637331; @@ -31165,6 +31213,7 @@ message InterconnectAttachment { // - BPS_20G: 20 Gbit/s // - BPS_50G: 50 Gbit/s // - BPS_100G: 100 Gbit/s + // - BPS_400G: 400 Gbit/s // Check the Bandwidth enum for the list of possible values. optional string bandwidth = 181715121; diff --git a/packages/google-cloud-compute/protos/google/cloud/compute/v1beta/compute.proto b/packages/google-cloud-compute/protos/google/cloud/compute/v1beta/compute.proto index 37c39487f17..6ac64a97d78 100644 --- a/packages/google-cloud-compute/protos/google/cloud/compute/v1beta/compute.proto +++ b/packages/google-cloud-compute/protos/google/cloud/compute/v1beta/compute.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ // Generated by the disco-to-proto3-converter. DO NOT EDIT! // Source Discovery file: compute.v1beta.json -// Source file revision: 20251230 +// Source file revision: 20260106 // API name: compute // API version: v1beta @@ -12907,6 +12907,9 @@ message BulkInsertInstanceResource { // The maximum number of instances to create. optional int64 count = 94851343; + // A flexible specification of machine type of instances to create. + optional InstanceFlexibilityPolicy instance_flexibility_policy = 26937090; + // The instance properties defining the VM instances to be created. Required // if sourceInstanceTemplate is not provided. optional InstanceProperties instance_properties = 215355165; @@ -31627,6 +31630,46 @@ message InstanceConsumptionInfo { } +// A flexible specification of machine types for instances to create. +message InstanceFlexibilityPolicy { + // Specification of alternative, flexible instance subsets. + // One of them will be selected to create the instances + // based on various criteria, like: + // - ranks, + // - location policy, + // - current capacity, + // - available reservations (you can specify affinity in + // InstanceProperties), + // - SWAN/GOOSE limitations. + // Key is an arbitrary, unique RFC1035 string that identifies the instance + // selection. + map instance_selections = 22954577; + +} + +// Specification of machine type to use. Every position inside this message +// is an alternative. +// The count specified in the shape flexibility must not exceed the number +// of entries in per_instance_properties or the capacity of the +// name_pattern, if used. +message InstanceFlexibilityPolicyInstanceSelection { + // Disks to be attached to the instances created from in this selection. + // They override the disks specified in the instance properties. + repeated AttachedDisk disks = 95594102; + + // Alternative machine types to use for instances that are created from + // these properties. This field only accepts a machine type names, for + // example `n2-standard-4` and not URLs or partial URLs. + repeated string machine_types = 79720065; + + // Rank when prioritizing the shape flexibilities. + // The instance selections with rank are considered + // first, in the ascending order of the rank. + // If not set, defaults to 0. + optional int64 rank = 3492908; + +} + // Represents an Instance Group resource. // // Instance Groups can be used to configure a target forload @@ -34153,6 +34196,7 @@ message InstancesReportHostAsFaultyRequestFaultReason { SILENT_DATA_CORRUPTION = 111360678; + // Unrecoverable GPU error identified by an XID UNRECOVERABLE_GPU_ERROR = 363710747; } @@ -34970,6 +35014,7 @@ message InterconnectAttachment { // - BPS_20G: 20 Gbit/s // - BPS_50G: 50 Gbit/s // - BPS_100G: 100 Gbit/s + // - BPS_400G: 400 Gbit/s enum Bandwidth { // A value indicating that the enum field is not set. UNDEFINED_BANDWIDTH = 0; @@ -35222,6 +35267,7 @@ message InterconnectAttachment { // - BPS_20G: 20 Gbit/s // - BPS_50G: 50 Gbit/s // - BPS_100G: 100 Gbit/s + // - BPS_400G: 400 Gbit/s // Check the Bandwidth enum for the list of possible values. optional string bandwidth = 181715121; diff --git a/packages/google-cloud-compute/protos/protos.d.ts b/packages/google-cloud-compute/protos/protos.d.ts index 579267e4b10..5ef046ac5d1 100644 --- a/packages/google-cloud-compute/protos/protos.d.ts +++ b/packages/google-cloud-compute/protos/protos.d.ts @@ -22028,6 +22028,9 @@ export namespace google { /** BulkInsertInstanceResource count */ count?: (number|Long|string|null); + /** BulkInsertInstanceResource instanceFlexibilityPolicy */ + instanceFlexibilityPolicy?: (google.cloud.compute.v1.IInstanceFlexibilityPolicy|null); + /** BulkInsertInstanceResource instanceProperties */ instanceProperties?: (google.cloud.compute.v1.IInstanceProperties|null); @@ -22059,6 +22062,9 @@ export namespace google { /** BulkInsertInstanceResource count. */ public count?: (number|Long|string|null); + /** BulkInsertInstanceResource instanceFlexibilityPolicy. */ + public instanceFlexibilityPolicy?: (google.cloud.compute.v1.IInstanceFlexibilityPolicy|null); + /** BulkInsertInstanceResource instanceProperties. */ public instanceProperties?: (google.cloud.compute.v1.IInstanceProperties|null); @@ -84027,6 +84033,212 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of an InstanceFlexibilityPolicy. */ + interface IInstanceFlexibilityPolicy { + + /** InstanceFlexibilityPolicy instanceSelections */ + instanceSelections?: ({ [k: string]: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection }|null); + } + + /** Represents an InstanceFlexibilityPolicy. */ + class InstanceFlexibilityPolicy implements IInstanceFlexibilityPolicy { + + /** + * Constructs a new InstanceFlexibilityPolicy. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicy); + + /** InstanceFlexibilityPolicy instanceSelections. */ + public instanceSelections: { [k: string]: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection }; + + /** + * Creates a new InstanceFlexibilityPolicy instance using the specified properties. + * @param [properties] Properties to set + * @returns InstanceFlexibilityPolicy instance + */ + public static create(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicy): google.cloud.compute.v1.InstanceFlexibilityPolicy; + + /** + * Encodes the specified InstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicy.verify|verify} messages. + * @param message InstanceFlexibilityPolicy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.compute.v1.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicy.verify|verify} messages. + * @param message InstanceFlexibilityPolicy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.compute.v1.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InstanceFlexibilityPolicy + * @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.compute.v1.InstanceFlexibilityPolicy; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InstanceFlexibilityPolicy + * @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.compute.v1.InstanceFlexibilityPolicy; + + /** + * Verifies an InstanceFlexibilityPolicy 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 an InstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InstanceFlexibilityPolicy + */ + public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceFlexibilityPolicy; + + /** + * Creates a plain object from an InstanceFlexibilityPolicy message. Also converts values to other types if specified. + * @param message InstanceFlexibilityPolicy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.compute.v1.InstanceFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InstanceFlexibilityPolicy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InstanceFlexibilityPolicy + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an InstanceFlexibilityPolicyInstanceSelection. */ + interface IInstanceFlexibilityPolicyInstanceSelection { + + /** InstanceFlexibilityPolicyInstanceSelection disks */ + disks?: (google.cloud.compute.v1.IAttachedDisk[]|null); + + /** InstanceFlexibilityPolicyInstanceSelection machineTypes */ + machineTypes?: (string[]|null); + + /** InstanceFlexibilityPolicyInstanceSelection rank */ + rank?: (number|Long|string|null); + } + + /** Represents an InstanceFlexibilityPolicyInstanceSelection. */ + class InstanceFlexibilityPolicyInstanceSelection implements IInstanceFlexibilityPolicyInstanceSelection { + + /** + * Constructs a new InstanceFlexibilityPolicyInstanceSelection. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection); + + /** InstanceFlexibilityPolicyInstanceSelection disks. */ + public disks: google.cloud.compute.v1.IAttachedDisk[]; + + /** InstanceFlexibilityPolicyInstanceSelection machineTypes. */ + public machineTypes: string[]; + + /** InstanceFlexibilityPolicyInstanceSelection rank. */ + public rank?: (number|Long|string|null); + + /** + * Creates a new InstanceFlexibilityPolicyInstanceSelection instance using the specified properties. + * @param [properties] Properties to set + * @returns InstanceFlexibilityPolicyInstanceSelection instance + */ + public static create(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection): google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InstanceFlexibilityPolicyInstanceSelection + * @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.compute.v1.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InstanceFlexibilityPolicyInstanceSelection + * @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.compute.v1.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Verifies an InstanceFlexibilityPolicyInstanceSelection 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 an InstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InstanceFlexibilityPolicyInstanceSelection + */ + public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Creates a plain object from an InstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified. + * @param message InstanceFlexibilityPolicyInstanceSelection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InstanceFlexibilityPolicyInstanceSelection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InstanceFlexibilityPolicyInstanceSelection + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of an InstanceGroup. */ interface IInstanceGroup { @@ -95388,6 +95600,7 @@ export namespace google { BPS_20G = 278693967, BPS_2G = 355358479, BPS_300M = 49607540, + BPS_400G = 49637325, BPS_400M = 49637331, BPS_500M = 49667122, BPS_50G = 278696850, @@ -264471,6 +264684,9 @@ export namespace google { /** BulkInsertInstanceResource count */ count?: (number|Long|string|null); + /** BulkInsertInstanceResource instanceFlexibilityPolicy */ + instanceFlexibilityPolicy?: (google.cloud.compute.v1beta.IInstanceFlexibilityPolicy|null); + /** BulkInsertInstanceResource instanceProperties */ instanceProperties?: (google.cloud.compute.v1beta.IInstanceProperties|null); @@ -264502,6 +264718,9 @@ export namespace google { /** BulkInsertInstanceResource count. */ public count?: (number|Long|string|null); + /** BulkInsertInstanceResource instanceFlexibilityPolicy. */ + public instanceFlexibilityPolicy?: (google.cloud.compute.v1beta.IInstanceFlexibilityPolicy|null); + /** BulkInsertInstanceResource instanceProperties. */ public instanceProperties?: (google.cloud.compute.v1beta.IInstanceProperties|null); @@ -335467,6 +335686,212 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of an InstanceFlexibilityPolicy. */ + interface IInstanceFlexibilityPolicy { + + /** InstanceFlexibilityPolicy instanceSelections */ + instanceSelections?: ({ [k: string]: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection }|null); + } + + /** Represents an InstanceFlexibilityPolicy. */ + class InstanceFlexibilityPolicy implements IInstanceFlexibilityPolicy { + + /** + * Constructs a new InstanceFlexibilityPolicy. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy); + + /** InstanceFlexibilityPolicy instanceSelections. */ + public instanceSelections: { [k: string]: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection }; + + /** + * Creates a new InstanceFlexibilityPolicy instance using the specified properties. + * @param [properties] Properties to set + * @returns InstanceFlexibilityPolicy instance + */ + public static create(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy): google.cloud.compute.v1beta.InstanceFlexibilityPolicy; + + /** + * Encodes the specified InstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicy.verify|verify} messages. + * @param message InstanceFlexibilityPolicy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicy.verify|verify} messages. + * @param message InstanceFlexibilityPolicy message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InstanceFlexibilityPolicy + * @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.compute.v1beta.InstanceFlexibilityPolicy; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InstanceFlexibilityPolicy + * @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.compute.v1beta.InstanceFlexibilityPolicy; + + /** + * Verifies an InstanceFlexibilityPolicy 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 an InstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InstanceFlexibilityPolicy + */ + public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceFlexibilityPolicy; + + /** + * Creates a plain object from an InstanceFlexibilityPolicy message. Also converts values to other types if specified. + * @param message InstanceFlexibilityPolicy + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.compute.v1beta.InstanceFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InstanceFlexibilityPolicy to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InstanceFlexibilityPolicy + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an InstanceFlexibilityPolicyInstanceSelection. */ + interface IInstanceFlexibilityPolicyInstanceSelection { + + /** InstanceFlexibilityPolicyInstanceSelection disks */ + disks?: (google.cloud.compute.v1beta.IAttachedDisk[]|null); + + /** InstanceFlexibilityPolicyInstanceSelection machineTypes */ + machineTypes?: (string[]|null); + + /** InstanceFlexibilityPolicyInstanceSelection rank */ + rank?: (number|Long|string|null); + } + + /** Represents an InstanceFlexibilityPolicyInstanceSelection. */ + class InstanceFlexibilityPolicyInstanceSelection implements IInstanceFlexibilityPolicyInstanceSelection { + + /** + * Constructs a new InstanceFlexibilityPolicyInstanceSelection. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection); + + /** InstanceFlexibilityPolicyInstanceSelection disks. */ + public disks: google.cloud.compute.v1beta.IAttachedDisk[]; + + /** InstanceFlexibilityPolicyInstanceSelection machineTypes. */ + public machineTypes: string[]; + + /** InstanceFlexibilityPolicyInstanceSelection rank. */ + public rank?: (number|Long|string|null); + + /** + * Creates a new InstanceFlexibilityPolicyInstanceSelection instance using the specified properties. + * @param [properties] Properties to set + * @returns InstanceFlexibilityPolicyInstanceSelection instance + */ + public static create(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection): google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InstanceFlexibilityPolicyInstanceSelection + * @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.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InstanceFlexibilityPolicyInstanceSelection + * @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.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Verifies an InstanceFlexibilityPolicyInstanceSelection 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 an InstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InstanceFlexibilityPolicyInstanceSelection + */ + public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection; + + /** + * Creates a plain object from an InstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified. + * @param message InstanceFlexibilityPolicyInstanceSelection + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InstanceFlexibilityPolicyInstanceSelection to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InstanceFlexibilityPolicyInstanceSelection + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of an InstanceGroup. */ interface IInstanceGroup { diff --git a/packages/google-cloud-compute/protos/protos.js b/packages/google-cloud-compute/protos/protos.js index 55f15d51970..1ebf99b08a1 100644 --- a/packages/google-cloud-compute/protos/protos.js +++ b/packages/google-cloud-compute/protos/protos.js @@ -65837,6 +65837,7 @@ * @memberof google.cloud.compute.v1 * @interface IBulkInsertInstanceResource * @property {number|Long|null} [count] BulkInsertInstanceResource count + * @property {google.cloud.compute.v1.IInstanceFlexibilityPolicy|null} [instanceFlexibilityPolicy] BulkInsertInstanceResource instanceFlexibilityPolicy * @property {google.cloud.compute.v1.IInstanceProperties|null} [instanceProperties] BulkInsertInstanceResource instanceProperties * @property {google.cloud.compute.v1.ILocationPolicy|null} [locationPolicy] BulkInsertInstanceResource locationPolicy * @property {number|Long|null} [minCount] BulkInsertInstanceResource minCount @@ -65869,6 +65870,14 @@ */ BulkInsertInstanceResource.prototype.count = null; + /** + * BulkInsertInstanceResource instanceFlexibilityPolicy. + * @member {google.cloud.compute.v1.IInstanceFlexibilityPolicy|null|undefined} instanceFlexibilityPolicy + * @memberof google.cloud.compute.v1.BulkInsertInstanceResource + * @instance + */ + BulkInsertInstanceResource.prototype.instanceFlexibilityPolicy = null; + /** * BulkInsertInstanceResource instanceProperties. * @member {google.cloud.compute.v1.IInstanceProperties|null|undefined} instanceProperties @@ -65926,6 +65935,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(BulkInsertInstanceResource.prototype, "_instanceFlexibilityPolicy", { + get: $util.oneOfGetter($oneOfFields = ["instanceFlexibilityPolicy"]), + set: $util.oneOfSetter($oneOfFields) + }); + // Virtual OneOf for proto3 optional field Object.defineProperty(BulkInsertInstanceResource.prototype, "_instanceProperties", { get: $util.oneOfGetter($oneOfFields = ["instanceProperties"]), @@ -65980,6 +65995,8 @@ BulkInsertInstanceResource.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.instanceFlexibilityPolicy != null && Object.hasOwnProperty.call(message, "instanceFlexibilityPolicy")) + $root.google.cloud.compute.v1.InstanceFlexibilityPolicy.encode(message.instanceFlexibilityPolicy, writer.uint32(/* id 26937090, wireType 2 =*/215496722).fork()).ldelim(); if (message.count != null && Object.hasOwnProperty.call(message, "count")) writer.uint32(/* id 94851343, wireType 0 =*/758810744).int64(message.count); if (message.perInstanceProperties != null && Object.hasOwnProperty.call(message, "perInstanceProperties")) @@ -66037,6 +66054,10 @@ message.count = reader.int64(); break; } + case 26937090: { + message.instanceFlexibilityPolicy = $root.google.cloud.compute.v1.InstanceFlexibilityPolicy.decode(reader, reader.uint32()); + break; + } case 215355165: { message.instanceProperties = $root.google.cloud.compute.v1.InstanceProperties.decode(reader, reader.uint32()); break; @@ -66121,6 +66142,14 @@ if (!$util.isInteger(message.count) && !(message.count && $util.isInteger(message.count.low) && $util.isInteger(message.count.high))) return "count: integer|Long expected"; } + if (message.instanceFlexibilityPolicy != null && message.hasOwnProperty("instanceFlexibilityPolicy")) { + properties._instanceFlexibilityPolicy = 1; + { + var error = $root.google.cloud.compute.v1.InstanceFlexibilityPolicy.verify(message.instanceFlexibilityPolicy); + if (error) + return "instanceFlexibilityPolicy." + error; + } + } if (message.instanceProperties != null && message.hasOwnProperty("instanceProperties")) { properties._instanceProperties = 1; { @@ -66186,6 +66215,11 @@ message.count = object.count; else if (typeof object.count === "object") message.count = new $util.LongBits(object.count.low >>> 0, object.count.high >>> 0).toNumber(); + if (object.instanceFlexibilityPolicy != null) { + if (typeof object.instanceFlexibilityPolicy !== "object") + throw TypeError(".google.cloud.compute.v1.BulkInsertInstanceResource.instanceFlexibilityPolicy: object expected"); + message.instanceFlexibilityPolicy = $root.google.cloud.compute.v1.InstanceFlexibilityPolicy.fromObject(object.instanceFlexibilityPolicy); + } if (object.instanceProperties != null) { if (typeof object.instanceProperties !== "object") throw TypeError(".google.cloud.compute.v1.BulkInsertInstanceResource.instanceProperties: object expected"); @@ -66237,6 +66271,11 @@ var object = {}; if (options.objects || options.defaults) object.perInstanceProperties = {}; + if (message.instanceFlexibilityPolicy != null && message.hasOwnProperty("instanceFlexibilityPolicy")) { + object.instanceFlexibilityPolicy = $root.google.cloud.compute.v1.InstanceFlexibilityPolicy.toObject(message.instanceFlexibilityPolicy, options); + if (options.oneofs) + object._instanceFlexibilityPolicy = "instanceFlexibilityPolicy"; + } if (message.count != null && message.hasOwnProperty("count")) { if (typeof message.count === "number") object.count = options.longs === String ? String(message.count) : message.count; @@ -229448,6 +229487,566 @@ return InstanceConsumptionInfo; })(); + v1.InstanceFlexibilityPolicy = (function() { + + /** + * Properties of an InstanceFlexibilityPolicy. + * @memberof google.cloud.compute.v1 + * @interface IInstanceFlexibilityPolicy + * @property {Object.|null} [instanceSelections] InstanceFlexibilityPolicy instanceSelections + */ + + /** + * Constructs a new InstanceFlexibilityPolicy. + * @memberof google.cloud.compute.v1 + * @classdesc Represents an InstanceFlexibilityPolicy. + * @implements IInstanceFlexibilityPolicy + * @constructor + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicy=} [properties] Properties to set + */ + function InstanceFlexibilityPolicy(properties) { + this.instanceSelections = {}; + 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]]; + } + + /** + * InstanceFlexibilityPolicy instanceSelections. + * @member {Object.} instanceSelections + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @instance + */ + InstanceFlexibilityPolicy.prototype.instanceSelections = $util.emptyObject; + + /** + * Creates a new InstanceFlexibilityPolicy instance using the specified properties. + * @function create + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicy=} [properties] Properties to set + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy instance + */ + InstanceFlexibilityPolicy.create = function create(properties) { + return new InstanceFlexibilityPolicy(properties); + }; + + /** + * Encodes the specified InstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicy.verify|verify} messages. + * @function encode + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicy} message InstanceFlexibilityPolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.instanceSelections != null && Object.hasOwnProperty.call(message, "instanceSelections")) + for (var keys = Object.keys(message.instanceSelections), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 22954577, wireType 2 =*/183636618).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.encode(message.instanceSelections[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + return writer; + }; + + /** + * Encodes the specified InstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicy} message InstanceFlexibilityPolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicy.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.compute.v1.InstanceFlexibilityPolicy(), key, value; + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 22954577: { + if (message.instanceSelections === $util.emptyObject) + message.instanceSelections = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.instanceSelections[key] = value; + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an InstanceFlexibilityPolicy message. + * @function verify + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InstanceFlexibilityPolicy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.instanceSelections != null && message.hasOwnProperty("instanceSelections")) { + if (!$util.isObject(message.instanceSelections)) + return "instanceSelections: object expected"; + var key = Object.keys(message.instanceSelections); + for (var i = 0; i < key.length; ++i) { + var error = $root.google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.verify(message.instanceSelections[key[i]]); + if (error) + return "instanceSelections." + error; + } + } + return null; + }; + + /** + * Creates an InstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy + */ + InstanceFlexibilityPolicy.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.compute.v1.InstanceFlexibilityPolicy) + return object; + var message = new $root.google.cloud.compute.v1.InstanceFlexibilityPolicy(); + if (object.instanceSelections) { + if (typeof object.instanceSelections !== "object") + throw TypeError(".google.cloud.compute.v1.InstanceFlexibilityPolicy.instanceSelections: object expected"); + message.instanceSelections = {}; + for (var keys = Object.keys(object.instanceSelections), i = 0; i < keys.length; ++i) { + if (typeof object.instanceSelections[keys[i]] !== "object") + throw TypeError(".google.cloud.compute.v1.InstanceFlexibilityPolicy.instanceSelections: object expected"); + message.instanceSelections[keys[i]] = $root.google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.fromObject(object.instanceSelections[keys[i]]); + } + } + return message; + }; + + /** + * Creates a plain object from an InstanceFlexibilityPolicy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1.InstanceFlexibilityPolicy} message InstanceFlexibilityPolicy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InstanceFlexibilityPolicy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.instanceSelections = {}; + var keys2; + if (message.instanceSelections && (keys2 = Object.keys(message.instanceSelections)).length) { + object.instanceSelections = {}; + for (var j = 0; j < keys2.length; ++j) + object.instanceSelections[keys2[j]] = $root.google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.toObject(message.instanceSelections[keys2[j]], options); + } + return object; + }; + + /** + * Converts this InstanceFlexibilityPolicy to JSON. + * @function toJSON + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @instance + * @returns {Object.} JSON object + */ + InstanceFlexibilityPolicy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for InstanceFlexibilityPolicy + * @function getTypeUrl + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicy + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + InstanceFlexibilityPolicy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.compute.v1.InstanceFlexibilityPolicy"; + }; + + return InstanceFlexibilityPolicy; + })(); + + v1.InstanceFlexibilityPolicyInstanceSelection = (function() { + + /** + * Properties of an InstanceFlexibilityPolicyInstanceSelection. + * @memberof google.cloud.compute.v1 + * @interface IInstanceFlexibilityPolicyInstanceSelection + * @property {Array.|null} [disks] InstanceFlexibilityPolicyInstanceSelection disks + * @property {Array.|null} [machineTypes] InstanceFlexibilityPolicyInstanceSelection machineTypes + * @property {number|Long|null} [rank] InstanceFlexibilityPolicyInstanceSelection rank + */ + + /** + * Constructs a new InstanceFlexibilityPolicyInstanceSelection. + * @memberof google.cloud.compute.v1 + * @classdesc Represents an InstanceFlexibilityPolicyInstanceSelection. + * @implements IInstanceFlexibilityPolicyInstanceSelection + * @constructor + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection=} [properties] Properties to set + */ + function InstanceFlexibilityPolicyInstanceSelection(properties) { + this.disks = []; + this.machineTypes = []; + 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]]; + } + + /** + * InstanceFlexibilityPolicyInstanceSelection disks. + * @member {Array.} disks + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @instance + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.disks = $util.emptyArray; + + /** + * InstanceFlexibilityPolicyInstanceSelection machineTypes. + * @member {Array.} machineTypes + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @instance + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.machineTypes = $util.emptyArray; + + /** + * InstanceFlexibilityPolicyInstanceSelection rank. + * @member {number|Long|null|undefined} rank + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @instance + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.rank = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(InstanceFlexibilityPolicyInstanceSelection.prototype, "_rank", { + get: $util.oneOfGetter($oneOfFields = ["rank"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new InstanceFlexibilityPolicyInstanceSelection instance using the specified properties. + * @function create + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection=} [properties] Properties to set + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection instance + */ + InstanceFlexibilityPolicyInstanceSelection.create = function create(properties) { + return new InstanceFlexibilityPolicyInstanceSelection(properties); + }; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @function encode + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection} message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicyInstanceSelection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rank != null && Object.hasOwnProperty.call(message, "rank")) + writer.uint32(/* id 3492908, wireType 0 =*/27943264).int64(message.rank); + if (message.machineTypes != null && message.machineTypes.length) + for (var i = 0; i < message.machineTypes.length; ++i) + writer.uint32(/* id 79720065, wireType 2 =*/637760522).string(message.machineTypes[i]); + if (message.disks != null && message.disks.length) + for (var i = 0; i < message.disks.length; ++i) + $root.google.cloud.compute.v1.AttachedDisk.encode(message.disks[i], writer.uint32(/* id 95594102, wireType 2 =*/764752818).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection} message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicyInstanceSelection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicyInstanceSelection.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.compute.v1.InstanceFlexibilityPolicyInstanceSelection(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 95594102: { + if (!(message.disks && message.disks.length)) + message.disks = []; + message.disks.push($root.google.cloud.compute.v1.AttachedDisk.decode(reader, reader.uint32())); + break; + } + case 79720065: { + if (!(message.machineTypes && message.machineTypes.length)) + message.machineTypes = []; + message.machineTypes.push(reader.string()); + break; + } + case 3492908: { + message.rank = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicyInstanceSelection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an InstanceFlexibilityPolicyInstanceSelection message. + * @function verify + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InstanceFlexibilityPolicyInstanceSelection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.disks != null && message.hasOwnProperty("disks")) { + if (!Array.isArray(message.disks)) + return "disks: array expected"; + for (var i = 0; i < message.disks.length; ++i) { + var error = $root.google.cloud.compute.v1.AttachedDisk.verify(message.disks[i]); + if (error) + return "disks." + error; + } + } + if (message.machineTypes != null && message.hasOwnProperty("machineTypes")) { + if (!Array.isArray(message.machineTypes)) + return "machineTypes: array expected"; + for (var i = 0; i < message.machineTypes.length; ++i) + if (!$util.isString(message.machineTypes[i])) + return "machineTypes: string[] expected"; + } + if (message.rank != null && message.hasOwnProperty("rank")) { + properties._rank = 1; + if (!$util.isInteger(message.rank) && !(message.rank && $util.isInteger(message.rank.low) && $util.isInteger(message.rank.high))) + return "rank: integer|Long expected"; + } + return null; + }; + + /** + * Creates an InstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection + */ + InstanceFlexibilityPolicyInstanceSelection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection) + return object; + var message = new $root.google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection(); + if (object.disks) { + if (!Array.isArray(object.disks)) + throw TypeError(".google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.disks: array expected"); + message.disks = []; + for (var i = 0; i < object.disks.length; ++i) { + if (typeof object.disks[i] !== "object") + throw TypeError(".google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.disks: object expected"); + message.disks[i] = $root.google.cloud.compute.v1.AttachedDisk.fromObject(object.disks[i]); + } + } + if (object.machineTypes) { + if (!Array.isArray(object.machineTypes)) + throw TypeError(".google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.machineTypes: array expected"); + message.machineTypes = []; + for (var i = 0; i < object.machineTypes.length; ++i) + message.machineTypes[i] = String(object.machineTypes[i]); + } + if (object.rank != null) + if ($util.Long) + (message.rank = $util.Long.fromValue(object.rank)).unsigned = false; + else if (typeof object.rank === "string") + message.rank = parseInt(object.rank, 10); + else if (typeof object.rank === "number") + message.rank = object.rank; + else if (typeof object.rank === "object") + message.rank = new $util.LongBits(object.rank.low >>> 0, object.rank.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from an InstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection} message InstanceFlexibilityPolicyInstanceSelection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InstanceFlexibilityPolicyInstanceSelection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.machineTypes = []; + object.disks = []; + } + if (message.rank != null && message.hasOwnProperty("rank")) { + if (typeof message.rank === "number") + object.rank = options.longs === String ? String(message.rank) : message.rank; + else + object.rank = options.longs === String ? $util.Long.prototype.toString.call(message.rank) : options.longs === Number ? new $util.LongBits(message.rank.low >>> 0, message.rank.high >>> 0).toNumber() : message.rank; + if (options.oneofs) + object._rank = "rank"; + } + if (message.machineTypes && message.machineTypes.length) { + object.machineTypes = []; + for (var j = 0; j < message.machineTypes.length; ++j) + object.machineTypes[j] = message.machineTypes[j]; + } + if (message.disks && message.disks.length) { + object.disks = []; + for (var j = 0; j < message.disks.length; ++j) + object.disks[j] = $root.google.cloud.compute.v1.AttachedDisk.toObject(message.disks[j], options); + } + return object; + }; + + /** + * Converts this InstanceFlexibilityPolicyInstanceSelection to JSON. + * @function toJSON + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @instance + * @returns {Object.} JSON object + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for InstanceFlexibilityPolicyInstanceSelection + * @function getTypeUrl + * @memberof google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + InstanceFlexibilityPolicyInstanceSelection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection"; + }; + + return InstanceFlexibilityPolicyInstanceSelection; + })(); + v1.InstanceGroup = (function() { /** @@ -262761,6 +263360,7 @@ * @property {number} BPS_20G=278693967 BPS_20G value * @property {number} BPS_2G=355358479 BPS_2G value * @property {number} BPS_300M=49607540 BPS_300M value + * @property {number} BPS_400G=49637325 BPS_400G value * @property {number} BPS_400M=49637331 BPS_400M value * @property {number} BPS_500M=49667122 BPS_500M value * @property {number} BPS_50G=278696850 BPS_50G value @@ -262778,6 +263378,7 @@ values[valuesById[278693967] = "BPS_20G"] = 278693967; values[valuesById[355358479] = "BPS_2G"] = 355358479; values[valuesById[49607540] = "BPS_300M"] = 49607540; + values[valuesById[49637325] = "BPS_400G"] = 49637325; values[valuesById[49637331] = "BPS_400M"] = 49637331; values[valuesById[49667122] = "BPS_500M"] = 49667122; values[valuesById[278696850] = "BPS_50G"] = 278696850; @@ -720325,6 +720926,7 @@ * @memberof google.cloud.compute.v1beta * @interface IBulkInsertInstanceResource * @property {number|Long|null} [count] BulkInsertInstanceResource count + * @property {google.cloud.compute.v1beta.IInstanceFlexibilityPolicy|null} [instanceFlexibilityPolicy] BulkInsertInstanceResource instanceFlexibilityPolicy * @property {google.cloud.compute.v1beta.IInstanceProperties|null} [instanceProperties] BulkInsertInstanceResource instanceProperties * @property {google.cloud.compute.v1beta.ILocationPolicy|null} [locationPolicy] BulkInsertInstanceResource locationPolicy * @property {number|Long|null} [minCount] BulkInsertInstanceResource minCount @@ -720357,6 +720959,14 @@ */ BulkInsertInstanceResource.prototype.count = null; + /** + * BulkInsertInstanceResource instanceFlexibilityPolicy. + * @member {google.cloud.compute.v1beta.IInstanceFlexibilityPolicy|null|undefined} instanceFlexibilityPolicy + * @memberof google.cloud.compute.v1beta.BulkInsertInstanceResource + * @instance + */ + BulkInsertInstanceResource.prototype.instanceFlexibilityPolicy = null; + /** * BulkInsertInstanceResource instanceProperties. * @member {google.cloud.compute.v1beta.IInstanceProperties|null|undefined} instanceProperties @@ -720414,6 +721024,12 @@ set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(BulkInsertInstanceResource.prototype, "_instanceFlexibilityPolicy", { + get: $util.oneOfGetter($oneOfFields = ["instanceFlexibilityPolicy"]), + set: $util.oneOfSetter($oneOfFields) + }); + // Virtual OneOf for proto3 optional field Object.defineProperty(BulkInsertInstanceResource.prototype, "_instanceProperties", { get: $util.oneOfGetter($oneOfFields = ["instanceProperties"]), @@ -720468,6 +721084,8 @@ BulkInsertInstanceResource.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); + if (message.instanceFlexibilityPolicy != null && Object.hasOwnProperty.call(message, "instanceFlexibilityPolicy")) + $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicy.encode(message.instanceFlexibilityPolicy, writer.uint32(/* id 26937090, wireType 2 =*/215496722).fork()).ldelim(); if (message.count != null && Object.hasOwnProperty.call(message, "count")) writer.uint32(/* id 94851343, wireType 0 =*/758810744).int64(message.count); if (message.perInstanceProperties != null && Object.hasOwnProperty.call(message, "perInstanceProperties")) @@ -720525,6 +721143,10 @@ message.count = reader.int64(); break; } + case 26937090: { + message.instanceFlexibilityPolicy = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicy.decode(reader, reader.uint32()); + break; + } case 215355165: { message.instanceProperties = $root.google.cloud.compute.v1beta.InstanceProperties.decode(reader, reader.uint32()); break; @@ -720609,6 +721231,14 @@ if (!$util.isInteger(message.count) && !(message.count && $util.isInteger(message.count.low) && $util.isInteger(message.count.high))) return "count: integer|Long expected"; } + if (message.instanceFlexibilityPolicy != null && message.hasOwnProperty("instanceFlexibilityPolicy")) { + properties._instanceFlexibilityPolicy = 1; + { + var error = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicy.verify(message.instanceFlexibilityPolicy); + if (error) + return "instanceFlexibilityPolicy." + error; + } + } if (message.instanceProperties != null && message.hasOwnProperty("instanceProperties")) { properties._instanceProperties = 1; { @@ -720674,6 +721304,11 @@ message.count = object.count; else if (typeof object.count === "object") message.count = new $util.LongBits(object.count.low >>> 0, object.count.high >>> 0).toNumber(); + if (object.instanceFlexibilityPolicy != null) { + if (typeof object.instanceFlexibilityPolicy !== "object") + throw TypeError(".google.cloud.compute.v1beta.BulkInsertInstanceResource.instanceFlexibilityPolicy: object expected"); + message.instanceFlexibilityPolicy = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicy.fromObject(object.instanceFlexibilityPolicy); + } if (object.instanceProperties != null) { if (typeof object.instanceProperties !== "object") throw TypeError(".google.cloud.compute.v1beta.BulkInsertInstanceResource.instanceProperties: object expected"); @@ -720725,6 +721360,11 @@ var object = {}; if (options.objects || options.defaults) object.perInstanceProperties = {}; + if (message.instanceFlexibilityPolicy != null && message.hasOwnProperty("instanceFlexibilityPolicy")) { + object.instanceFlexibilityPolicy = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicy.toObject(message.instanceFlexibilityPolicy, options); + if (options.oneofs) + object._instanceFlexibilityPolicy = "instanceFlexibilityPolicy"; + } if (message.count != null && message.hasOwnProperty("count")) { if (typeof message.count === "number") object.count = options.longs === String ? String(message.count) : message.count; @@ -908440,6 +909080,566 @@ return InstanceConsumptionInfo; })(); + v1beta.InstanceFlexibilityPolicy = (function() { + + /** + * Properties of an InstanceFlexibilityPolicy. + * @memberof google.cloud.compute.v1beta + * @interface IInstanceFlexibilityPolicy + * @property {Object.|null} [instanceSelections] InstanceFlexibilityPolicy instanceSelections + */ + + /** + * Constructs a new InstanceFlexibilityPolicy. + * @memberof google.cloud.compute.v1beta + * @classdesc Represents an InstanceFlexibilityPolicy. + * @implements IInstanceFlexibilityPolicy + * @constructor + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicy=} [properties] Properties to set + */ + function InstanceFlexibilityPolicy(properties) { + this.instanceSelections = {}; + 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]]; + } + + /** + * InstanceFlexibilityPolicy instanceSelections. + * @member {Object.} instanceSelections + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @instance + */ + InstanceFlexibilityPolicy.prototype.instanceSelections = $util.emptyObject; + + /** + * Creates a new InstanceFlexibilityPolicy instance using the specified properties. + * @function create + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicy=} [properties] Properties to set + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy instance + */ + InstanceFlexibilityPolicy.create = function create(properties) { + return new InstanceFlexibilityPolicy(properties); + }; + + /** + * Encodes the specified InstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicy.verify|verify} messages. + * @function encode + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicy} message InstanceFlexibilityPolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicy.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.instanceSelections != null && Object.hasOwnProperty.call(message, "instanceSelections")) + for (var keys = Object.keys(message.instanceSelections), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 22954577, wireType 2 =*/183636618).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.encode(message.instanceSelections[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + return writer; + }; + + /** + * Encodes the specified InstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicy.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicy} message InstanceFlexibilityPolicy message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicy.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicy.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.compute.v1beta.InstanceFlexibilityPolicy(), key, value; + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 22954577: { + if (message.instanceSelections === $util.emptyObject) + message.instanceSelections = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.instanceSelections[key] = value; + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicy.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an InstanceFlexibilityPolicy message. + * @function verify + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InstanceFlexibilityPolicy.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.instanceSelections != null && message.hasOwnProperty("instanceSelections")) { + if (!$util.isObject(message.instanceSelections)) + return "instanceSelections: object expected"; + var key = Object.keys(message.instanceSelections); + for (var i = 0; i < key.length; ++i) { + var error = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.verify(message.instanceSelections[key[i]]); + if (error) + return "instanceSelections." + error; + } + } + return null; + }; + + /** + * Creates an InstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicy} InstanceFlexibilityPolicy + */ + InstanceFlexibilityPolicy.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicy) + return object; + var message = new $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicy(); + if (object.instanceSelections) { + if (typeof object.instanceSelections !== "object") + throw TypeError(".google.cloud.compute.v1beta.InstanceFlexibilityPolicy.instanceSelections: object expected"); + message.instanceSelections = {}; + for (var keys = Object.keys(object.instanceSelections), i = 0; i < keys.length; ++i) { + if (typeof object.instanceSelections[keys[i]] !== "object") + throw TypeError(".google.cloud.compute.v1beta.InstanceFlexibilityPolicy.instanceSelections: object expected"); + message.instanceSelections[keys[i]] = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.fromObject(object.instanceSelections[keys[i]]); + } + } + return message; + }; + + /** + * Creates a plain object from an InstanceFlexibilityPolicy message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {google.cloud.compute.v1beta.InstanceFlexibilityPolicy} message InstanceFlexibilityPolicy + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InstanceFlexibilityPolicy.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.instanceSelections = {}; + var keys2; + if (message.instanceSelections && (keys2 = Object.keys(message.instanceSelections)).length) { + object.instanceSelections = {}; + for (var j = 0; j < keys2.length; ++j) + object.instanceSelections[keys2[j]] = $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.toObject(message.instanceSelections[keys2[j]], options); + } + return object; + }; + + /** + * Converts this InstanceFlexibilityPolicy to JSON. + * @function toJSON + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @instance + * @returns {Object.} JSON object + */ + InstanceFlexibilityPolicy.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for InstanceFlexibilityPolicy + * @function getTypeUrl + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicy + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + InstanceFlexibilityPolicy.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.compute.v1beta.InstanceFlexibilityPolicy"; + }; + + return InstanceFlexibilityPolicy; + })(); + + v1beta.InstanceFlexibilityPolicyInstanceSelection = (function() { + + /** + * Properties of an InstanceFlexibilityPolicyInstanceSelection. + * @memberof google.cloud.compute.v1beta + * @interface IInstanceFlexibilityPolicyInstanceSelection + * @property {Array.|null} [disks] InstanceFlexibilityPolicyInstanceSelection disks + * @property {Array.|null} [machineTypes] InstanceFlexibilityPolicyInstanceSelection machineTypes + * @property {number|Long|null} [rank] InstanceFlexibilityPolicyInstanceSelection rank + */ + + /** + * Constructs a new InstanceFlexibilityPolicyInstanceSelection. + * @memberof google.cloud.compute.v1beta + * @classdesc Represents an InstanceFlexibilityPolicyInstanceSelection. + * @implements IInstanceFlexibilityPolicyInstanceSelection + * @constructor + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection=} [properties] Properties to set + */ + function InstanceFlexibilityPolicyInstanceSelection(properties) { + this.disks = []; + this.machineTypes = []; + 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]]; + } + + /** + * InstanceFlexibilityPolicyInstanceSelection disks. + * @member {Array.} disks + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @instance + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.disks = $util.emptyArray; + + /** + * InstanceFlexibilityPolicyInstanceSelection machineTypes. + * @member {Array.} machineTypes + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @instance + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.machineTypes = $util.emptyArray; + + /** + * InstanceFlexibilityPolicyInstanceSelection rank. + * @member {number|Long|null|undefined} rank + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @instance + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.rank = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(InstanceFlexibilityPolicyInstanceSelection.prototype, "_rank", { + get: $util.oneOfGetter($oneOfFields = ["rank"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new InstanceFlexibilityPolicyInstanceSelection instance using the specified properties. + * @function create + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection=} [properties] Properties to set + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection instance + */ + InstanceFlexibilityPolicyInstanceSelection.create = function create(properties) { + return new InstanceFlexibilityPolicyInstanceSelection(properties); + }; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @function encode + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection} message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicyInstanceSelection.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rank != null && Object.hasOwnProperty.call(message, "rank")) + writer.uint32(/* id 3492908, wireType 0 =*/27943264).int64(message.rank); + if (message.machineTypes != null && message.machineTypes.length) + for (var i = 0; i < message.machineTypes.length; ++i) + writer.uint32(/* id 79720065, wireType 2 =*/637760522).string(message.machineTypes[i]); + if (message.disks != null && message.disks.length) + for (var i = 0; i < message.disks.length; ++i) + $root.google.cloud.compute.v1beta.AttachedDisk.encode(message.disks[i], writer.uint32(/* id 95594102, wireType 2 =*/764752818).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection} message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InstanceFlexibilityPolicyInstanceSelection.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicyInstanceSelection.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.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 95594102: { + if (!(message.disks && message.disks.length)) + message.disks = []; + message.disks.push($root.google.cloud.compute.v1beta.AttachedDisk.decode(reader, reader.uint32())); + break; + } + case 79720065: { + if (!(message.machineTypes && message.machineTypes.length)) + message.machineTypes = []; + message.machineTypes.push(reader.string()); + break; + } + case 3492908: { + message.rank = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InstanceFlexibilityPolicyInstanceSelection.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an InstanceFlexibilityPolicyInstanceSelection message. + * @function verify + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InstanceFlexibilityPolicyInstanceSelection.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.disks != null && message.hasOwnProperty("disks")) { + if (!Array.isArray(message.disks)) + return "disks: array expected"; + for (var i = 0; i < message.disks.length; ++i) { + var error = $root.google.cloud.compute.v1beta.AttachedDisk.verify(message.disks[i]); + if (error) + return "disks." + error; + } + } + if (message.machineTypes != null && message.hasOwnProperty("machineTypes")) { + if (!Array.isArray(message.machineTypes)) + return "machineTypes: array expected"; + for (var i = 0; i < message.machineTypes.length; ++i) + if (!$util.isString(message.machineTypes[i])) + return "machineTypes: string[] expected"; + } + if (message.rank != null && message.hasOwnProperty("rank")) { + properties._rank = 1; + if (!$util.isInteger(message.rank) && !(message.rank && $util.isInteger(message.rank.low) && $util.isInteger(message.rank.high))) + return "rank: integer|Long expected"; + } + return null; + }; + + /** + * Creates an InstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection} InstanceFlexibilityPolicyInstanceSelection + */ + InstanceFlexibilityPolicyInstanceSelection.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection) + return object; + var message = new $root.google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection(); + if (object.disks) { + if (!Array.isArray(object.disks)) + throw TypeError(".google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.disks: array expected"); + message.disks = []; + for (var i = 0; i < object.disks.length; ++i) { + if (typeof object.disks[i] !== "object") + throw TypeError(".google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.disks: object expected"); + message.disks[i] = $root.google.cloud.compute.v1beta.AttachedDisk.fromObject(object.disks[i]); + } + } + if (object.machineTypes) { + if (!Array.isArray(object.machineTypes)) + throw TypeError(".google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.machineTypes: array expected"); + message.machineTypes = []; + for (var i = 0; i < object.machineTypes.length; ++i) + message.machineTypes[i] = String(object.machineTypes[i]); + } + if (object.rank != null) + if ($util.Long) + (message.rank = $util.Long.fromValue(object.rank)).unsigned = false; + else if (typeof object.rank === "string") + message.rank = parseInt(object.rank, 10); + else if (typeof object.rank === "number") + message.rank = object.rank; + else if (typeof object.rank === "object") + message.rank = new $util.LongBits(object.rank.low >>> 0, object.rank.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from an InstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection} message InstanceFlexibilityPolicyInstanceSelection + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InstanceFlexibilityPolicyInstanceSelection.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.machineTypes = []; + object.disks = []; + } + if (message.rank != null && message.hasOwnProperty("rank")) { + if (typeof message.rank === "number") + object.rank = options.longs === String ? String(message.rank) : message.rank; + else + object.rank = options.longs === String ? $util.Long.prototype.toString.call(message.rank) : options.longs === Number ? new $util.LongBits(message.rank.low >>> 0, message.rank.high >>> 0).toNumber() : message.rank; + if (options.oneofs) + object._rank = "rank"; + } + if (message.machineTypes && message.machineTypes.length) { + object.machineTypes = []; + for (var j = 0; j < message.machineTypes.length; ++j) + object.machineTypes[j] = message.machineTypes[j]; + } + if (message.disks && message.disks.length) { + object.disks = []; + for (var j = 0; j < message.disks.length; ++j) + object.disks[j] = $root.google.cloud.compute.v1beta.AttachedDisk.toObject(message.disks[j], options); + } + return object; + }; + + /** + * Converts this InstanceFlexibilityPolicyInstanceSelection to JSON. + * @function toJSON + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @instance + * @returns {Object.} JSON object + */ + InstanceFlexibilityPolicyInstanceSelection.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for InstanceFlexibilityPolicyInstanceSelection + * @function getTypeUrl + * @memberof google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + InstanceFlexibilityPolicyInstanceSelection.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection"; + }; + + return InstanceFlexibilityPolicyInstanceSelection; + })(); + v1beta.InstanceGroup = (function() { /** diff --git a/packages/google-cloud-compute/protos/protos.json b/packages/google-cloud-compute/protos/protos.json index a2ab1b7960a..46f923b7702 100644 --- a/packages/google-cloud-compute/protos/protos.json +++ b/packages/google-cloud-compute/protos/protos.json @@ -12160,6 +12160,11 @@ "count" ] }, + "_instanceFlexibilityPolicy": { + "oneof": [ + "instanceFlexibilityPolicy" + ] + }, "_instanceProperties": { "oneof": [ "instanceProperties" @@ -12194,6 +12199,13 @@ "proto3_optional": true } }, + "instanceFlexibilityPolicy": { + "type": "InstanceFlexibilityPolicy", + "id": 26937090, + "options": { + "proto3_optional": true + } + }, "instanceProperties": { "type": "InstanceProperties", "id": 215355165, @@ -35412,6 +35424,43 @@ } } }, + "InstanceFlexibilityPolicy": { + "fields": { + "instanceSelections": { + "keyType": "string", + "type": "InstanceFlexibilityPolicyInstanceSelection", + "id": 22954577 + } + } + }, + "InstanceFlexibilityPolicyInstanceSelection": { + "oneofs": { + "_rank": { + "oneof": [ + "rank" + ] + } + }, + "fields": { + "disks": { + "rule": "repeated", + "type": "AttachedDisk", + "id": 95594102 + }, + "machineTypes": { + "rule": "repeated", + "type": "string", + "id": 79720065 + }, + "rank": { + "type": "int64", + "id": 3492908, + "options": { + "proto3_optional": true + } + } + } + }, "InstanceGroup": { "oneofs": { "_creationTimestamp": { @@ -40630,6 +40679,7 @@ "BPS_20G": 278693967, "BPS_2G": 355358479, "BPS_300M": 49607540, + "BPS_400G": 49637325, "BPS_400M": 49637331, "BPS_500M": 49667122, "BPS_50G": 278696850, @@ -131750,6 +131800,11 @@ "count" ] }, + "_instanceFlexibilityPolicy": { + "oneof": [ + "instanceFlexibilityPolicy" + ] + }, "_instanceProperties": { "oneof": [ "instanceProperties" @@ -131784,6 +131839,13 @@ "proto3_optional": true } }, + "instanceFlexibilityPolicy": { + "type": "InstanceFlexibilityPolicy", + "id": 26937090, + "options": { + "proto3_optional": true + } + }, "instanceProperties": { "type": "InstanceProperties", "id": 215355165, @@ -158742,6 +158804,43 @@ } } }, + "InstanceFlexibilityPolicy": { + "fields": { + "instanceSelections": { + "keyType": "string", + "type": "InstanceFlexibilityPolicyInstanceSelection", + "id": 22954577 + } + } + }, + "InstanceFlexibilityPolicyInstanceSelection": { + "oneofs": { + "_rank": { + "oneof": [ + "rank" + ] + } + }, + "fields": { + "disks": { + "rule": "repeated", + "type": "AttachedDisk", + "id": 95594102 + }, + "machineTypes": { + "rule": "repeated", + "type": "string", + "id": 79720065 + }, + "rank": { + "type": "int64", + "id": 3492908, + "options": { + "proto3_optional": true + } + } + } + }, "InstanceGroup": { "oneofs": { "_creationTimestamp": {