diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/chokepoint.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/chokepoint.proto new file mode 100644 index 00000000000..95b9dd4cde6 --- /dev/null +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/chokepoint.proto @@ -0,0 +1,35 @@ +// 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. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ChokepointProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Contains details about a chokepoint, which is a resource or resource group +// where high-risk attack paths converge, based on [attack path simulations] +// (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_path_simulations). +message Chokepoint { + // List of resource names of findings associated with this chokepoint. + // For example, organizations/123/sources/456/findings/789. + // This list will have at most 100 findings. + repeated string related_findings = 1; +} diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto index ba47341d3d8..b4408c9f14f 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/cloud_dlp_data_profile.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. @@ -54,4 +54,60 @@ message CloudDlpDataProfile { // The resource hierarchy level at which the data profile was generated. ParentType parent_type = 2; + + // Type of information detected by SDP. + // Info type includes name, version and sensitivity of the detected + // information type. + repeated InfoType info_types = 3; +} + +// Type of information detected by the API. +message InfoType { + // Name of the information type. Either a name of your choosing when + // creating a CustomInfoType, or one of the names listed + // at + // https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference + // when specifying a built-in type. When sending Cloud DLP results to Data + // Catalog, infoType names should conform to the pattern + // `[A-Za-z0-9$_-]{1,64}`. + string name = 1; + + // Optional version name for this InfoType. + string version = 2; + + // Optional custom sensitivity for this InfoType. + // This only applies to data profiling. + SensitivityScore sensitivity_score = 3; +} + +// Score is calculated from of all elements in the data profile. +// A higher level means the data is more sensitive. +message SensitivityScore { + // Various sensitivity score levels for resources. + enum SensitivityScoreLevel { + // Unused. + SENSITIVITY_SCORE_LEVEL_UNSPECIFIED = 0; + + // No sensitive information detected. The resource isn't publicly + // accessible. + SENSITIVITY_LOW = 10; + + // Unable to determine sensitivity. + SENSITIVITY_UNKNOWN = 12; + + // Medium risk. Contains personally identifiable information (PII), + // potentially sensitive data, or fields with free-text data that are at a + // higher risk of having intermittent sensitive data. Consider limiting + // access. + SENSITIVITY_MODERATE = 20; + + // High risk. Sensitive personally identifiable information (SPII) can be + // present. Exfiltration of data can lead to user data loss. + // Re-identification of users might be possible. Consider limiting usage and + // or removing SPII. + SENSITIVITY_HIGH = 30; + } + + // The sensitivity score applied to the resource. + SensitivityScoreLevel score = 1; } diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/external_exposure.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/external_exposure.proto new file mode 100644 index 00000000000..90842609448 --- /dev/null +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/external_exposure.proto @@ -0,0 +1,75 @@ +// 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. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +import "google/api/field_info.proto"; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "ExternalExposureProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Details about the externally exposed resource associated with the finding. +message ExternalExposure { + // Private IP address of the exposed endpoint. + string private_ip_address = 1 [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Port number associated with private IP address. + string private_port = 2; + + // The name and version of the service, for example, "Jupyter + // Notebook 6.14.0". + string exposed_service = 3; + + // Public IP address of the exposed endpoint. + string public_ip_address = 4 [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Public port number of the exposed endpoint. + string public_port = 5; + + // The resource which is running the exposed service, for example, + // "//compute.googleapis.com/projects/{project-id}/zones/{zone}/instances/{instance}.” + string exposed_endpoint = 6; + + // The full resource name of the load balancer firewall policy, for example, + // "//compute.googleapis.com/projects/{project-id}/global/firewallPolicies/{policy-name}". + string load_balancer_firewall_policy = 7; + + // The full resource name of the firewall policy of the exposed service, for + // example, + // "//compute.googleapis.com/projects/{project-id}/global/firewallPolicies/{policy-name}". + string service_firewall_policy = 8; + + // The full resource name of the forwarding rule, for example, + // "//compute.googleapis.com/projects/{project-id}/global/forwardingRules/{forwarding-rule-name}". + string forwarding_rule = 9; + + // The full resource name of load balancer backend service, for example, + // "//compute.googleapis.com/projects/{project-id}/global/backendServices/{name}". + string backend_service = 10; + + // The full resource name of the instance group, for example, + // "//compute.googleapis.com/projects/{project-id}/global/instanceGroups/{name}". + string instance_group = 11; + + // The full resource name of the network endpoint group, for example, + // "//compute.googleapis.com/projects/{project-id}/global/networkEndpointGroups/{name}". + string network_endpoint_group = 12; +} diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/finding.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/finding.proto index b5403cdf9af..dd7a7e1a05c 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/finding.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/finding.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. @@ -22,6 +22,7 @@ import "google/cloud/securitycenter/v1/access.proto"; import "google/cloud/securitycenter/v1/application.proto"; import "google/cloud/securitycenter/v1/attack_exposure.proto"; import "google/cloud/securitycenter/v1/backup_disaster_recovery.proto"; +import "google/cloud/securitycenter/v1/chokepoint.proto"; import "google/cloud/securitycenter/v1/cloud_armor.proto"; import "google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto"; import "google/cloud/securitycenter/v1/cloud_dlp_inspection.proto"; @@ -31,6 +32,7 @@ import "google/cloud/securitycenter/v1/contact_details.proto"; import "google/cloud/securitycenter/v1/container.proto"; import "google/cloud/securitycenter/v1/database.proto"; import "google/cloud/securitycenter/v1/exfiltration.proto"; +import "google/cloud/securitycenter/v1/external_exposure.proto"; import "google/cloud/securitycenter/v1/external_system.proto"; import "google/cloud/securitycenter/v1/file.proto"; import "google/cloud/securitycenter/v1/group_membership.proto"; @@ -194,6 +196,18 @@ message Finding { // independently. A group of such issues is referred to as a toxic // combination. TOXIC_COMBINATION = 7; + + // Describes a potential security risk to data assets that contain sensitive + // data. + SENSITIVE_DATA_RISK = 8; + + // Describes a resource or resource group where high risk attack paths + // converge, based on attack path simulations (APS). + CHOKEPOINT = 9; + + // Describes a potential security risk due to the resource being exposed to + // the internet. + EXTERNAL_EXPOSURE = 10; } // Mute information about the finding, including whether the finding has a @@ -459,4 +473,13 @@ message Finding { // a collection of findings that are related in some way. // This field cannot be updated. Its value is ignored in all update requests. repeated GroupMembership group_memberships = 65; + + // Contains details about a chokepoint, which is a resource or resource group + // where high-risk attack paths converge, based on [attack path simulations] + // (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_path_simulations). + // This field cannot be updated. Its value is ignored in all update requests. + Chokepoint chokepoint = 77; + + // External exposure associated with the finding. + ExternalExposure external_exposure = 84; } diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/group_membership.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/group_membership.proto index 3ce140c602d..1625145ca45 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/group_membership.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/group_membership.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. @@ -34,6 +34,9 @@ message GroupMembership { // Group represents a toxic combination. GROUP_TYPE_TOXIC_COMBINATION = 1; + + // Group represents a chokepoint. + GROUP_TYPE_CHOKEPOINT = 3; } // Type of group. diff --git a/packages/google-cloud-securitycenter/protos/protos.d.ts b/packages/google-cloud-securitycenter/protos/protos.d.ts index e9e17344ca6..ada272cf21a 100644 --- a/packages/google-cloud-securitycenter/protos/protos.d.ts +++ b/packages/google-cloud-securitycenter/protos/protos.d.ts @@ -2099,6 +2099,103 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a Chokepoint. */ + interface IChokepoint { + + /** Chokepoint relatedFindings */ + relatedFindings?: (string[]|null); + } + + /** Represents a Chokepoint. */ + class Chokepoint implements IChokepoint { + + /** + * Constructs a new Chokepoint. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.securitycenter.v1.IChokepoint); + + /** Chokepoint relatedFindings. */ + public relatedFindings: string[]; + + /** + * Creates a new Chokepoint instance using the specified properties. + * @param [properties] Properties to set + * @returns Chokepoint instance + */ + public static create(properties?: google.cloud.securitycenter.v1.IChokepoint): google.cloud.securitycenter.v1.Chokepoint; + + /** + * Encodes the specified Chokepoint message. Does not implicitly {@link google.cloud.securitycenter.v1.Chokepoint.verify|verify} messages. + * @param message Chokepoint message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.securitycenter.v1.IChokepoint, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Chokepoint message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.Chokepoint.verify|verify} messages. + * @param message Chokepoint message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.securitycenter.v1.IChokepoint, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Chokepoint message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Chokepoint + * @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.securitycenter.v1.Chokepoint; + + /** + * Decodes a Chokepoint message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Chokepoint + * @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.securitycenter.v1.Chokepoint; + + /** + * Verifies a Chokepoint 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 Chokepoint message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Chokepoint + */ + public static fromObject(object: { [k: string]: any }): google.cloud.securitycenter.v1.Chokepoint; + + /** + * Creates a plain object from a Chokepoint message. Also converts values to other types if specified. + * @param message Chokepoint + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.securitycenter.v1.Chokepoint, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Chokepoint to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Chokepoint + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a CloudArmor. */ interface ICloudArmor { @@ -2664,6 +2761,9 @@ export namespace google { /** CloudDlpDataProfile parentType */ parentType?: (google.cloud.securitycenter.v1.CloudDlpDataProfile.ParentType|keyof typeof google.cloud.securitycenter.v1.CloudDlpDataProfile.ParentType|null); + + /** CloudDlpDataProfile infoTypes */ + infoTypes?: (google.cloud.securitycenter.v1.IInfoType[]|null); } /** Represents a CloudDlpDataProfile. */ @@ -2681,6 +2781,9 @@ export namespace google { /** CloudDlpDataProfile parentType. */ public parentType: (google.cloud.securitycenter.v1.CloudDlpDataProfile.ParentType|keyof typeof google.cloud.securitycenter.v1.CloudDlpDataProfile.ParentType); + /** CloudDlpDataProfile infoTypes. */ + public infoTypes: google.cloud.securitycenter.v1.IInfoType[]; + /** * Creates a new CloudDlpDataProfile instance using the specified properties. * @param [properties] Properties to set @@ -2769,6 +2872,224 @@ export namespace google { } } + /** Properties of an InfoType. */ + interface IInfoType { + + /** InfoType name */ + name?: (string|null); + + /** InfoType version */ + version?: (string|null); + + /** InfoType sensitivityScore */ + sensitivityScore?: (google.cloud.securitycenter.v1.ISensitivityScore|null); + } + + /** Represents an InfoType. */ + class InfoType implements IInfoType { + + /** + * Constructs a new InfoType. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.securitycenter.v1.IInfoType); + + /** InfoType name. */ + public name: string; + + /** InfoType version. */ + public version: string; + + /** InfoType sensitivityScore. */ + public sensitivityScore?: (google.cloud.securitycenter.v1.ISensitivityScore|null); + + /** + * Creates a new InfoType instance using the specified properties. + * @param [properties] Properties to set + * @returns InfoType instance + */ + public static create(properties?: google.cloud.securitycenter.v1.IInfoType): google.cloud.securitycenter.v1.InfoType; + + /** + * Encodes the specified InfoType message. Does not implicitly {@link google.cloud.securitycenter.v1.InfoType.verify|verify} messages. + * @param message InfoType message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.securitycenter.v1.IInfoType, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified InfoType message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.InfoType.verify|verify} messages. + * @param message InfoType message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.securitycenter.v1.IInfoType, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an InfoType message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns InfoType + * @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.securitycenter.v1.InfoType; + + /** + * Decodes an InfoType message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns InfoType + * @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.securitycenter.v1.InfoType; + + /** + * Verifies an InfoType 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 InfoType message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns InfoType + */ + public static fromObject(object: { [k: string]: any }): google.cloud.securitycenter.v1.InfoType; + + /** + * Creates a plain object from an InfoType message. Also converts values to other types if specified. + * @param message InfoType + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.securitycenter.v1.InfoType, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this InfoType to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for InfoType + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a SensitivityScore. */ + interface ISensitivityScore { + + /** SensitivityScore score */ + score?: (google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel|keyof typeof google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel|null); + } + + /** Represents a SensitivityScore. */ + class SensitivityScore implements ISensitivityScore { + + /** + * Constructs a new SensitivityScore. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.securitycenter.v1.ISensitivityScore); + + /** SensitivityScore score. */ + public score: (google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel|keyof typeof google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel); + + /** + * Creates a new SensitivityScore instance using the specified properties. + * @param [properties] Properties to set + * @returns SensitivityScore instance + */ + public static create(properties?: google.cloud.securitycenter.v1.ISensitivityScore): google.cloud.securitycenter.v1.SensitivityScore; + + /** + * Encodes the specified SensitivityScore message. Does not implicitly {@link google.cloud.securitycenter.v1.SensitivityScore.verify|verify} messages. + * @param message SensitivityScore message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.securitycenter.v1.ISensitivityScore, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SensitivityScore message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.SensitivityScore.verify|verify} messages. + * @param message SensitivityScore message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.securitycenter.v1.ISensitivityScore, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SensitivityScore message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SensitivityScore + * @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.securitycenter.v1.SensitivityScore; + + /** + * Decodes a SensitivityScore message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SensitivityScore + * @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.securitycenter.v1.SensitivityScore; + + /** + * Verifies a SensitivityScore 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 SensitivityScore message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SensitivityScore + */ + public static fromObject(object: { [k: string]: any }): google.cloud.securitycenter.v1.SensitivityScore; + + /** + * Creates a plain object from a SensitivityScore message. Also converts values to other types if specified. + * @param message SensitivityScore + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.securitycenter.v1.SensitivityScore, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SensitivityScore to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SensitivityScore + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace SensitivityScore { + + /** SensitivityScoreLevel enum. */ + enum SensitivityScoreLevel { + SENSITIVITY_SCORE_LEVEL_UNSPECIFIED = 0, + SENSITIVITY_LOW = 10, + SENSITIVITY_UNKNOWN = 12, + SENSITIVITY_MODERATE = 20, + SENSITIVITY_HIGH = 30 + } + } + /** Properties of a CloudDlpInspection. */ interface ICloudDlpInspection { @@ -5056,6 +5377,169 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of an ExternalExposure. */ + interface IExternalExposure { + + /** ExternalExposure privateIpAddress */ + privateIpAddress?: (string|null); + + /** ExternalExposure privatePort */ + privatePort?: (string|null); + + /** ExternalExposure exposedService */ + exposedService?: (string|null); + + /** ExternalExposure publicIpAddress */ + publicIpAddress?: (string|null); + + /** ExternalExposure publicPort */ + publicPort?: (string|null); + + /** ExternalExposure exposedEndpoint */ + exposedEndpoint?: (string|null); + + /** ExternalExposure loadBalancerFirewallPolicy */ + loadBalancerFirewallPolicy?: (string|null); + + /** ExternalExposure serviceFirewallPolicy */ + serviceFirewallPolicy?: (string|null); + + /** ExternalExposure forwardingRule */ + forwardingRule?: (string|null); + + /** ExternalExposure backendService */ + backendService?: (string|null); + + /** ExternalExposure instanceGroup */ + instanceGroup?: (string|null); + + /** ExternalExposure networkEndpointGroup */ + networkEndpointGroup?: (string|null); + } + + /** Represents an ExternalExposure. */ + class ExternalExposure implements IExternalExposure { + + /** + * Constructs a new ExternalExposure. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.securitycenter.v1.IExternalExposure); + + /** ExternalExposure privateIpAddress. */ + public privateIpAddress: string; + + /** ExternalExposure privatePort. */ + public privatePort: string; + + /** ExternalExposure exposedService. */ + public exposedService: string; + + /** ExternalExposure publicIpAddress. */ + public publicIpAddress: string; + + /** ExternalExposure publicPort. */ + public publicPort: string; + + /** ExternalExposure exposedEndpoint. */ + public exposedEndpoint: string; + + /** ExternalExposure loadBalancerFirewallPolicy. */ + public loadBalancerFirewallPolicy: string; + + /** ExternalExposure serviceFirewallPolicy. */ + public serviceFirewallPolicy: string; + + /** ExternalExposure forwardingRule. */ + public forwardingRule: string; + + /** ExternalExposure backendService. */ + public backendService: string; + + /** ExternalExposure instanceGroup. */ + public instanceGroup: string; + + /** ExternalExposure networkEndpointGroup. */ + public networkEndpointGroup: string; + + /** + * Creates a new ExternalExposure instance using the specified properties. + * @param [properties] Properties to set + * @returns ExternalExposure instance + */ + public static create(properties?: google.cloud.securitycenter.v1.IExternalExposure): google.cloud.securitycenter.v1.ExternalExposure; + + /** + * Encodes the specified ExternalExposure message. Does not implicitly {@link google.cloud.securitycenter.v1.ExternalExposure.verify|verify} messages. + * @param message ExternalExposure message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.securitycenter.v1.IExternalExposure, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExternalExposure message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.ExternalExposure.verify|verify} messages. + * @param message ExternalExposure message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.securitycenter.v1.IExternalExposure, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExternalExposure message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExternalExposure + * @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.securitycenter.v1.ExternalExposure; + + /** + * Decodes an ExternalExposure message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExternalExposure + * @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.securitycenter.v1.ExternalExposure; + + /** + * Verifies an ExternalExposure 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 ExternalExposure message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExternalExposure + */ + public static fromObject(object: { [k: string]: any }): google.cloud.securitycenter.v1.ExternalExposure; + + /** + * Creates a plain object from an ExternalExposure message. Also converts values to other types if specified. + * @param message ExternalExposure + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.securitycenter.v1.ExternalExposure, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExternalExposure to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExternalExposure + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of an ExternalSystem. */ interface IExternalSystem { @@ -5734,6 +6218,12 @@ export namespace google { /** Finding groupMemberships */ groupMemberships?: (google.cloud.securitycenter.v1.IGroupMembership[]|null); + + /** Finding chokepoint */ + chokepoint?: (google.cloud.securitycenter.v1.IChokepoint|null); + + /** Finding externalExposure */ + externalExposure?: (google.cloud.securitycenter.v1.IExternalExposure|null); } /** Represents a Finding. */ @@ -5895,6 +6385,12 @@ export namespace google { /** Finding groupMemberships. */ public groupMemberships: google.cloud.securitycenter.v1.IGroupMembership[]; + /** Finding chokepoint. */ + public chokepoint?: (google.cloud.securitycenter.v1.IChokepoint|null); + + /** Finding externalExposure. */ + public externalExposure?: (google.cloud.securitycenter.v1.IExternalExposure|null); + /** * Creates a new Finding instance using the specified properties. * @param [properties] Properties to set @@ -6008,7 +6504,10 @@ export namespace google { OBSERVATION = 4, SCC_ERROR = 5, POSTURE_VIOLATION = 6, - TOXIC_COMBINATION = 7 + TOXIC_COMBINATION = 7, + SENSITIVE_DATA_RISK = 8, + CHOKEPOINT = 9, + EXTERNAL_EXPOSURE = 10 } /** Properties of a MuteInfo. */ @@ -6432,7 +6931,8 @@ export namespace google { /** GroupType enum. */ enum GroupType { GROUP_TYPE_UNSPECIFIED = 0, - GROUP_TYPE_TOXIC_COMBINATION = 1 + GROUP_TYPE_TOXIC_COMBINATION = 1, + GROUP_TYPE_CHOKEPOINT = 3 } } @@ -54357,6 +54857,115 @@ export namespace google { IDENTIFIER = 8 } + /** Properties of a FieldInfo. */ + interface IFieldInfo { + + /** FieldInfo format */ + format?: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format|null); + } + + /** Represents a FieldInfo. */ + class FieldInfo implements IFieldInfo { + + /** + * Constructs a new FieldInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IFieldInfo); + + /** FieldInfo format. */ + public format: (google.api.FieldInfo.Format|keyof typeof google.api.FieldInfo.Format); + + /** + * Creates a new FieldInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns FieldInfo instance + */ + public static create(properties?: google.api.IFieldInfo): google.api.FieldInfo; + + /** + * Encodes the specified FieldInfo message. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @param message FieldInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IFieldInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified FieldInfo message, length delimited. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @param message FieldInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IFieldInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FieldInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FieldInfo + * @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.api.FieldInfo; + + /** + * Decodes a FieldInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns FieldInfo + * @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.api.FieldInfo; + + /** + * Verifies a FieldInfo 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 FieldInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns FieldInfo + */ + public static fromObject(object: { [k: string]: any }): google.api.FieldInfo; + + /** + * Creates a plain object from a FieldInfo message. Also converts values to other types if specified. + * @param message FieldInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.FieldInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this FieldInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for FieldInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace FieldInfo { + + /** Format enum. */ + enum Format { + FORMAT_UNSPECIFIED = 0, + UUID4 = 1, + IPV4 = 2, + IPV6 = 3, + IPV4_OR_IPV6 = 4 + } + } + /** Properties of a Http. */ interface IHttp { @@ -58583,6 +59192,9 @@ export namespace google { /** FieldOptions .google.api.fieldBehavior */ ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null); + + /** FieldOptions .google.api.fieldInfo */ + ".google.api.fieldInfo"?: (google.api.IFieldInfo|null); } /** Represents a FieldOptions. */ diff --git a/packages/google-cloud-securitycenter/protos/protos.js b/packages/google-cloud-securitycenter/protos/protos.js index 5a3f8d767c9..46fdeb4b05c 100644 --- a/packages/google-cloud-securitycenter/protos/protos.js +++ b/packages/google-cloud-securitycenter/protos/protos.js @@ -5541,6 +5541,227 @@ return BigQueryExport; })(); + v1.Chokepoint = (function() { + + /** + * Properties of a Chokepoint. + * @memberof google.cloud.securitycenter.v1 + * @interface IChokepoint + * @property {Array.|null} [relatedFindings] Chokepoint relatedFindings + */ + + /** + * Constructs a new Chokepoint. + * @memberof google.cloud.securitycenter.v1 + * @classdesc Represents a Chokepoint. + * @implements IChokepoint + * @constructor + * @param {google.cloud.securitycenter.v1.IChokepoint=} [properties] Properties to set + */ + function Chokepoint(properties) { + this.relatedFindings = []; + 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]]; + } + + /** + * Chokepoint relatedFindings. + * @member {Array.} relatedFindings + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @instance + */ + Chokepoint.prototype.relatedFindings = $util.emptyArray; + + /** + * Creates a new Chokepoint instance using the specified properties. + * @function create + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {google.cloud.securitycenter.v1.IChokepoint=} [properties] Properties to set + * @returns {google.cloud.securitycenter.v1.Chokepoint} Chokepoint instance + */ + Chokepoint.create = function create(properties) { + return new Chokepoint(properties); + }; + + /** + * Encodes the specified Chokepoint message. Does not implicitly {@link google.cloud.securitycenter.v1.Chokepoint.verify|verify} messages. + * @function encode + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {google.cloud.securitycenter.v1.IChokepoint} message Chokepoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Chokepoint.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.relatedFindings != null && message.relatedFindings.length) + for (var i = 0; i < message.relatedFindings.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.relatedFindings[i]); + return writer; + }; + + /** + * Encodes the specified Chokepoint message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.Chokepoint.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {google.cloud.securitycenter.v1.IChokepoint} message Chokepoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Chokepoint.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Chokepoint message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.securitycenter.v1.Chokepoint} Chokepoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Chokepoint.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.securitycenter.v1.Chokepoint(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + if (!(message.relatedFindings && message.relatedFindings.length)) + message.relatedFindings = []; + message.relatedFindings.push(reader.string()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Chokepoint message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.securitycenter.v1.Chokepoint} Chokepoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Chokepoint.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Chokepoint message. + * @function verify + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Chokepoint.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.relatedFindings != null && message.hasOwnProperty("relatedFindings")) { + if (!Array.isArray(message.relatedFindings)) + return "relatedFindings: array expected"; + for (var i = 0; i < message.relatedFindings.length; ++i) + if (!$util.isString(message.relatedFindings[i])) + return "relatedFindings: string[] expected"; + } + return null; + }; + + /** + * Creates a Chokepoint message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.securitycenter.v1.Chokepoint} Chokepoint + */ + Chokepoint.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.securitycenter.v1.Chokepoint) + return object; + var message = new $root.google.cloud.securitycenter.v1.Chokepoint(); + if (object.relatedFindings) { + if (!Array.isArray(object.relatedFindings)) + throw TypeError(".google.cloud.securitycenter.v1.Chokepoint.relatedFindings: array expected"); + message.relatedFindings = []; + for (var i = 0; i < object.relatedFindings.length; ++i) + message.relatedFindings[i] = String(object.relatedFindings[i]); + } + return message; + }; + + /** + * Creates a plain object from a Chokepoint message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {google.cloud.securitycenter.v1.Chokepoint} message Chokepoint + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Chokepoint.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.relatedFindings = []; + if (message.relatedFindings && message.relatedFindings.length) { + object.relatedFindings = []; + for (var j = 0; j < message.relatedFindings.length; ++j) + object.relatedFindings[j] = message.relatedFindings[j]; + } + return object; + }; + + /** + * Converts this Chokepoint to JSON. + * @function toJSON + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @instance + * @returns {Object.} JSON object + */ + Chokepoint.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Chokepoint + * @function getTypeUrl + * @memberof google.cloud.securitycenter.v1.Chokepoint + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Chokepoint.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.securitycenter.v1.Chokepoint"; + }; + + return Chokepoint; + })(); + v1.CloudArmor = (function() { /** @@ -6879,6 +7100,7 @@ * @interface ICloudDlpDataProfile * @property {string|null} [dataProfile] CloudDlpDataProfile dataProfile * @property {google.cloud.securitycenter.v1.CloudDlpDataProfile.ParentType|null} [parentType] CloudDlpDataProfile parentType + * @property {Array.|null} [infoTypes] CloudDlpDataProfile infoTypes */ /** @@ -6890,6 +7112,7 @@ * @param {google.cloud.securitycenter.v1.ICloudDlpDataProfile=} [properties] Properties to set */ function CloudDlpDataProfile(properties) { + this.infoTypes = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -6912,6 +7135,14 @@ */ CloudDlpDataProfile.prototype.parentType = 0; + /** + * CloudDlpDataProfile infoTypes. + * @member {Array.} infoTypes + * @memberof google.cloud.securitycenter.v1.CloudDlpDataProfile + * @instance + */ + CloudDlpDataProfile.prototype.infoTypes = $util.emptyArray; + /** * Creates a new CloudDlpDataProfile instance using the specified properties. * @function create @@ -6940,6 +7171,9 @@ writer.uint32(/* id 1, wireType 2 =*/10).string(message.dataProfile); if (message.parentType != null && Object.hasOwnProperty.call(message, "parentType")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.parentType); + if (message.infoTypes != null && message.infoTypes.length) + for (var i = 0; i < message.infoTypes.length; ++i) + $root.google.cloud.securitycenter.v1.InfoType.encode(message.infoTypes[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -6984,6 +7218,12 @@ message.parentType = reader.int32(); break; } + case 3: { + if (!(message.infoTypes && message.infoTypes.length)) + message.infoTypes = []; + message.infoTypes.push($root.google.cloud.securitycenter.v1.InfoType.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -7031,6 +7271,15 @@ case 2: break; } + if (message.infoTypes != null && message.hasOwnProperty("infoTypes")) { + if (!Array.isArray(message.infoTypes)) + return "infoTypes: array expected"; + for (var i = 0; i < message.infoTypes.length; ++i) { + var error = $root.google.cloud.securitycenter.v1.InfoType.verify(message.infoTypes[i]); + if (error) + return "infoTypes." + error; + } + } return null; }; @@ -7068,6 +7317,16 @@ message.parentType = 2; break; } + if (object.infoTypes) { + if (!Array.isArray(object.infoTypes)) + throw TypeError(".google.cloud.securitycenter.v1.CloudDlpDataProfile.infoTypes: array expected"); + message.infoTypes = []; + for (var i = 0; i < object.infoTypes.length; ++i) { + if (typeof object.infoTypes[i] !== "object") + throw TypeError(".google.cloud.securitycenter.v1.CloudDlpDataProfile.infoTypes: object expected"); + message.infoTypes[i] = $root.google.cloud.securitycenter.v1.InfoType.fromObject(object.infoTypes[i]); + } + } return message; }; @@ -7084,6 +7343,8 @@ if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.infoTypes = []; if (options.defaults) { object.dataProfile = ""; object.parentType = options.enums === String ? "PARENT_TYPE_UNSPECIFIED" : 0; @@ -7092,6 +7353,11 @@ object.dataProfile = message.dataProfile; if (message.parentType != null && message.hasOwnProperty("parentType")) object.parentType = options.enums === String ? $root.google.cloud.securitycenter.v1.CloudDlpDataProfile.ParentType[message.parentType] === undefined ? message.parentType : $root.google.cloud.securitycenter.v1.CloudDlpDataProfile.ParentType[message.parentType] : message.parentType; + if (message.infoTypes && message.infoTypes.length) { + object.infoTypes = []; + for (var j = 0; j < message.infoTypes.length; ++j) + object.infoTypes[j] = $root.google.cloud.securitycenter.v1.InfoType.toObject(message.infoTypes[j], options); + } return object; }; @@ -7140,6 +7406,522 @@ return CloudDlpDataProfile; })(); + v1.InfoType = (function() { + + /** + * Properties of an InfoType. + * @memberof google.cloud.securitycenter.v1 + * @interface IInfoType + * @property {string|null} [name] InfoType name + * @property {string|null} [version] InfoType version + * @property {google.cloud.securitycenter.v1.ISensitivityScore|null} [sensitivityScore] InfoType sensitivityScore + */ + + /** + * Constructs a new InfoType. + * @memberof google.cloud.securitycenter.v1 + * @classdesc Represents an InfoType. + * @implements IInfoType + * @constructor + * @param {google.cloud.securitycenter.v1.IInfoType=} [properties] Properties to set + */ + function InfoType(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]]; + } + + /** + * InfoType name. + * @member {string} name + * @memberof google.cloud.securitycenter.v1.InfoType + * @instance + */ + InfoType.prototype.name = ""; + + /** + * InfoType version. + * @member {string} version + * @memberof google.cloud.securitycenter.v1.InfoType + * @instance + */ + InfoType.prototype.version = ""; + + /** + * InfoType sensitivityScore. + * @member {google.cloud.securitycenter.v1.ISensitivityScore|null|undefined} sensitivityScore + * @memberof google.cloud.securitycenter.v1.InfoType + * @instance + */ + InfoType.prototype.sensitivityScore = null; + + /** + * Creates a new InfoType instance using the specified properties. + * @function create + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {google.cloud.securitycenter.v1.IInfoType=} [properties] Properties to set + * @returns {google.cloud.securitycenter.v1.InfoType} InfoType instance + */ + InfoType.create = function create(properties) { + return new InfoType(properties); + }; + + /** + * Encodes the specified InfoType message. Does not implicitly {@link google.cloud.securitycenter.v1.InfoType.verify|verify} messages. + * @function encode + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {google.cloud.securitycenter.v1.IInfoType} message InfoType message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InfoType.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.version); + if (message.sensitivityScore != null && Object.hasOwnProperty.call(message, "sensitivityScore")) + $root.google.cloud.securitycenter.v1.SensitivityScore.encode(message.sensitivityScore, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified InfoType message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.InfoType.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {google.cloud.securitycenter.v1.IInfoType} message InfoType message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + InfoType.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an InfoType message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.securitycenter.v1.InfoType} InfoType + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InfoType.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.securitycenter.v1.InfoType(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + message.version = reader.string(); + break; + } + case 3: { + message.sensitivityScore = $root.google.cloud.securitycenter.v1.SensitivityScore.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an InfoType message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.securitycenter.v1.InfoType} InfoType + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + InfoType.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an InfoType message. + * @function verify + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + InfoType.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isString(message.version)) + return "version: string expected"; + if (message.sensitivityScore != null && message.hasOwnProperty("sensitivityScore")) { + var error = $root.google.cloud.securitycenter.v1.SensitivityScore.verify(message.sensitivityScore); + if (error) + return "sensitivityScore." + error; + } + return null; + }; + + /** + * Creates an InfoType message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.securitycenter.v1.InfoType} InfoType + */ + InfoType.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.securitycenter.v1.InfoType) + return object; + var message = new $root.google.cloud.securitycenter.v1.InfoType(); + if (object.name != null) + message.name = String(object.name); + if (object.version != null) + message.version = String(object.version); + if (object.sensitivityScore != null) { + if (typeof object.sensitivityScore !== "object") + throw TypeError(".google.cloud.securitycenter.v1.InfoType.sensitivityScore: object expected"); + message.sensitivityScore = $root.google.cloud.securitycenter.v1.SensitivityScore.fromObject(object.sensitivityScore); + } + return message; + }; + + /** + * Creates a plain object from an InfoType message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {google.cloud.securitycenter.v1.InfoType} message InfoType + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + InfoType.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + object.version = ""; + object.sensitivityScore = null; + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.version != null && message.hasOwnProperty("version")) + object.version = message.version; + if (message.sensitivityScore != null && message.hasOwnProperty("sensitivityScore")) + object.sensitivityScore = $root.google.cloud.securitycenter.v1.SensitivityScore.toObject(message.sensitivityScore, options); + return object; + }; + + /** + * Converts this InfoType to JSON. + * @function toJSON + * @memberof google.cloud.securitycenter.v1.InfoType + * @instance + * @returns {Object.} JSON object + */ + InfoType.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for InfoType + * @function getTypeUrl + * @memberof google.cloud.securitycenter.v1.InfoType + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + InfoType.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.securitycenter.v1.InfoType"; + }; + + return InfoType; + })(); + + v1.SensitivityScore = (function() { + + /** + * Properties of a SensitivityScore. + * @memberof google.cloud.securitycenter.v1 + * @interface ISensitivityScore + * @property {google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel|null} [score] SensitivityScore score + */ + + /** + * Constructs a new SensitivityScore. + * @memberof google.cloud.securitycenter.v1 + * @classdesc Represents a SensitivityScore. + * @implements ISensitivityScore + * @constructor + * @param {google.cloud.securitycenter.v1.ISensitivityScore=} [properties] Properties to set + */ + function SensitivityScore(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]]; + } + + /** + * SensitivityScore score. + * @member {google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel} score + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @instance + */ + SensitivityScore.prototype.score = 0; + + /** + * Creates a new SensitivityScore instance using the specified properties. + * @function create + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {google.cloud.securitycenter.v1.ISensitivityScore=} [properties] Properties to set + * @returns {google.cloud.securitycenter.v1.SensitivityScore} SensitivityScore instance + */ + SensitivityScore.create = function create(properties) { + return new SensitivityScore(properties); + }; + + /** + * Encodes the specified SensitivityScore message. Does not implicitly {@link google.cloud.securitycenter.v1.SensitivityScore.verify|verify} messages. + * @function encode + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {google.cloud.securitycenter.v1.ISensitivityScore} message SensitivityScore message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SensitivityScore.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.score != null && Object.hasOwnProperty.call(message, "score")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.score); + return writer; + }; + + /** + * Encodes the specified SensitivityScore message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.SensitivityScore.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {google.cloud.securitycenter.v1.ISensitivityScore} message SensitivityScore message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SensitivityScore.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SensitivityScore message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.securitycenter.v1.SensitivityScore} SensitivityScore + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SensitivityScore.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.securitycenter.v1.SensitivityScore(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.score = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SensitivityScore message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.securitycenter.v1.SensitivityScore} SensitivityScore + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SensitivityScore.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SensitivityScore message. + * @function verify + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SensitivityScore.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.score != null && message.hasOwnProperty("score")) + switch (message.score) { + default: + return "score: enum value expected"; + case 0: + case 10: + case 12: + case 20: + case 30: + break; + } + return null; + }; + + /** + * Creates a SensitivityScore message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.securitycenter.v1.SensitivityScore} SensitivityScore + */ + SensitivityScore.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.securitycenter.v1.SensitivityScore) + return object; + var message = new $root.google.cloud.securitycenter.v1.SensitivityScore(); + switch (object.score) { + default: + if (typeof object.score === "number") { + message.score = object.score; + break; + } + break; + case "SENSITIVITY_SCORE_LEVEL_UNSPECIFIED": + case 0: + message.score = 0; + break; + case "SENSITIVITY_LOW": + case 10: + message.score = 10; + break; + case "SENSITIVITY_UNKNOWN": + case 12: + message.score = 12; + break; + case "SENSITIVITY_MODERATE": + case 20: + message.score = 20; + break; + case "SENSITIVITY_HIGH": + case 30: + message.score = 30; + break; + } + return message; + }; + + /** + * Creates a plain object from a SensitivityScore message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {google.cloud.securitycenter.v1.SensitivityScore} message SensitivityScore + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SensitivityScore.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.score = options.enums === String ? "SENSITIVITY_SCORE_LEVEL_UNSPECIFIED" : 0; + if (message.score != null && message.hasOwnProperty("score")) + object.score = options.enums === String ? $root.google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel[message.score] === undefined ? message.score : $root.google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel[message.score] : message.score; + return object; + }; + + /** + * Converts this SensitivityScore to JSON. + * @function toJSON + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @instance + * @returns {Object.} JSON object + */ + SensitivityScore.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SensitivityScore + * @function getTypeUrl + * @memberof google.cloud.securitycenter.v1.SensitivityScore + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SensitivityScore.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.securitycenter.v1.SensitivityScore"; + }; + + /** + * SensitivityScoreLevel enum. + * @name google.cloud.securitycenter.v1.SensitivityScore.SensitivityScoreLevel + * @enum {number} + * @property {number} SENSITIVITY_SCORE_LEVEL_UNSPECIFIED=0 SENSITIVITY_SCORE_LEVEL_UNSPECIFIED value + * @property {number} SENSITIVITY_LOW=10 SENSITIVITY_LOW value + * @property {number} SENSITIVITY_UNKNOWN=12 SENSITIVITY_UNKNOWN value + * @property {number} SENSITIVITY_MODERATE=20 SENSITIVITY_MODERATE value + * @property {number} SENSITIVITY_HIGH=30 SENSITIVITY_HIGH value + */ + SensitivityScore.SensitivityScoreLevel = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "SENSITIVITY_SCORE_LEVEL_UNSPECIFIED"] = 0; + values[valuesById[10] = "SENSITIVITY_LOW"] = 10; + values[valuesById[12] = "SENSITIVITY_UNKNOWN"] = 12; + values[valuesById[20] = "SENSITIVITY_MODERATE"] = 20; + values[valuesById[30] = "SENSITIVITY_HIGH"] = 30; + return values; + })(); + + return SensitivityScore; + })(); + v1.CloudDlpInspection = (function() { /** @@ -12904,6 +13686,465 @@ return ExfilResource; })(); + v1.ExternalExposure = (function() { + + /** + * Properties of an ExternalExposure. + * @memberof google.cloud.securitycenter.v1 + * @interface IExternalExposure + * @property {string|null} [privateIpAddress] ExternalExposure privateIpAddress + * @property {string|null} [privatePort] ExternalExposure privatePort + * @property {string|null} [exposedService] ExternalExposure exposedService + * @property {string|null} [publicIpAddress] ExternalExposure publicIpAddress + * @property {string|null} [publicPort] ExternalExposure publicPort + * @property {string|null} [exposedEndpoint] ExternalExposure exposedEndpoint + * @property {string|null} [loadBalancerFirewallPolicy] ExternalExposure loadBalancerFirewallPolicy + * @property {string|null} [serviceFirewallPolicy] ExternalExposure serviceFirewallPolicy + * @property {string|null} [forwardingRule] ExternalExposure forwardingRule + * @property {string|null} [backendService] ExternalExposure backendService + * @property {string|null} [instanceGroup] ExternalExposure instanceGroup + * @property {string|null} [networkEndpointGroup] ExternalExposure networkEndpointGroup + */ + + /** + * Constructs a new ExternalExposure. + * @memberof google.cloud.securitycenter.v1 + * @classdesc Represents an ExternalExposure. + * @implements IExternalExposure + * @constructor + * @param {google.cloud.securitycenter.v1.IExternalExposure=} [properties] Properties to set + */ + function ExternalExposure(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]]; + } + + /** + * ExternalExposure privateIpAddress. + * @member {string} privateIpAddress + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.privateIpAddress = ""; + + /** + * ExternalExposure privatePort. + * @member {string} privatePort + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.privatePort = ""; + + /** + * ExternalExposure exposedService. + * @member {string} exposedService + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.exposedService = ""; + + /** + * ExternalExposure publicIpAddress. + * @member {string} publicIpAddress + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.publicIpAddress = ""; + + /** + * ExternalExposure publicPort. + * @member {string} publicPort + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.publicPort = ""; + + /** + * ExternalExposure exposedEndpoint. + * @member {string} exposedEndpoint + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.exposedEndpoint = ""; + + /** + * ExternalExposure loadBalancerFirewallPolicy. + * @member {string} loadBalancerFirewallPolicy + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.loadBalancerFirewallPolicy = ""; + + /** + * ExternalExposure serviceFirewallPolicy. + * @member {string} serviceFirewallPolicy + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.serviceFirewallPolicy = ""; + + /** + * ExternalExposure forwardingRule. + * @member {string} forwardingRule + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.forwardingRule = ""; + + /** + * ExternalExposure backendService. + * @member {string} backendService + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.backendService = ""; + + /** + * ExternalExposure instanceGroup. + * @member {string} instanceGroup + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.instanceGroup = ""; + + /** + * ExternalExposure networkEndpointGroup. + * @member {string} networkEndpointGroup + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + */ + ExternalExposure.prototype.networkEndpointGroup = ""; + + /** + * Creates a new ExternalExposure instance using the specified properties. + * @function create + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {google.cloud.securitycenter.v1.IExternalExposure=} [properties] Properties to set + * @returns {google.cloud.securitycenter.v1.ExternalExposure} ExternalExposure instance + */ + ExternalExposure.create = function create(properties) { + return new ExternalExposure(properties); + }; + + /** + * Encodes the specified ExternalExposure message. Does not implicitly {@link google.cloud.securitycenter.v1.ExternalExposure.verify|verify} messages. + * @function encode + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {google.cloud.securitycenter.v1.IExternalExposure} message ExternalExposure message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExternalExposure.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.privateIpAddress != null && Object.hasOwnProperty.call(message, "privateIpAddress")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.privateIpAddress); + if (message.privatePort != null && Object.hasOwnProperty.call(message, "privatePort")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.privatePort); + if (message.exposedService != null && Object.hasOwnProperty.call(message, "exposedService")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.exposedService); + if (message.publicIpAddress != null && Object.hasOwnProperty.call(message, "publicIpAddress")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.publicIpAddress); + if (message.publicPort != null && Object.hasOwnProperty.call(message, "publicPort")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.publicPort); + if (message.exposedEndpoint != null && Object.hasOwnProperty.call(message, "exposedEndpoint")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.exposedEndpoint); + if (message.loadBalancerFirewallPolicy != null && Object.hasOwnProperty.call(message, "loadBalancerFirewallPolicy")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.loadBalancerFirewallPolicy); + if (message.serviceFirewallPolicy != null && Object.hasOwnProperty.call(message, "serviceFirewallPolicy")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.serviceFirewallPolicy); + if (message.forwardingRule != null && Object.hasOwnProperty.call(message, "forwardingRule")) + writer.uint32(/* id 9, wireType 2 =*/74).string(message.forwardingRule); + if (message.backendService != null && Object.hasOwnProperty.call(message, "backendService")) + writer.uint32(/* id 10, wireType 2 =*/82).string(message.backendService); + if (message.instanceGroup != null && Object.hasOwnProperty.call(message, "instanceGroup")) + writer.uint32(/* id 11, wireType 2 =*/90).string(message.instanceGroup); + if (message.networkEndpointGroup != null && Object.hasOwnProperty.call(message, "networkEndpointGroup")) + writer.uint32(/* id 12, wireType 2 =*/98).string(message.networkEndpointGroup); + return writer; + }; + + /** + * Encodes the specified ExternalExposure message, length delimited. Does not implicitly {@link google.cloud.securitycenter.v1.ExternalExposure.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {google.cloud.securitycenter.v1.IExternalExposure} message ExternalExposure message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExternalExposure.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExternalExposure message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.securitycenter.v1.ExternalExposure} ExternalExposure + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExternalExposure.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.securitycenter.v1.ExternalExposure(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.privateIpAddress = reader.string(); + break; + } + case 2: { + message.privatePort = reader.string(); + break; + } + case 3: { + message.exposedService = reader.string(); + break; + } + case 4: { + message.publicIpAddress = reader.string(); + break; + } + case 5: { + message.publicPort = reader.string(); + break; + } + case 6: { + message.exposedEndpoint = reader.string(); + break; + } + case 7: { + message.loadBalancerFirewallPolicy = reader.string(); + break; + } + case 8: { + message.serviceFirewallPolicy = reader.string(); + break; + } + case 9: { + message.forwardingRule = reader.string(); + break; + } + case 10: { + message.backendService = reader.string(); + break; + } + case 11: { + message.instanceGroup = reader.string(); + break; + } + case 12: { + message.networkEndpointGroup = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExternalExposure message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.securitycenter.v1.ExternalExposure} ExternalExposure + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExternalExposure.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExternalExposure message. + * @function verify + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExternalExposure.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.privateIpAddress != null && message.hasOwnProperty("privateIpAddress")) + if (!$util.isString(message.privateIpAddress)) + return "privateIpAddress: string expected"; + if (message.privatePort != null && message.hasOwnProperty("privatePort")) + if (!$util.isString(message.privatePort)) + return "privatePort: string expected"; + if (message.exposedService != null && message.hasOwnProperty("exposedService")) + if (!$util.isString(message.exposedService)) + return "exposedService: string expected"; + if (message.publicIpAddress != null && message.hasOwnProperty("publicIpAddress")) + if (!$util.isString(message.publicIpAddress)) + return "publicIpAddress: string expected"; + if (message.publicPort != null && message.hasOwnProperty("publicPort")) + if (!$util.isString(message.publicPort)) + return "publicPort: string expected"; + if (message.exposedEndpoint != null && message.hasOwnProperty("exposedEndpoint")) + if (!$util.isString(message.exposedEndpoint)) + return "exposedEndpoint: string expected"; + if (message.loadBalancerFirewallPolicy != null && message.hasOwnProperty("loadBalancerFirewallPolicy")) + if (!$util.isString(message.loadBalancerFirewallPolicy)) + return "loadBalancerFirewallPolicy: string expected"; + if (message.serviceFirewallPolicy != null && message.hasOwnProperty("serviceFirewallPolicy")) + if (!$util.isString(message.serviceFirewallPolicy)) + return "serviceFirewallPolicy: string expected"; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + if (!$util.isString(message.forwardingRule)) + return "forwardingRule: string expected"; + if (message.backendService != null && message.hasOwnProperty("backendService")) + if (!$util.isString(message.backendService)) + return "backendService: string expected"; + if (message.instanceGroup != null && message.hasOwnProperty("instanceGroup")) + if (!$util.isString(message.instanceGroup)) + return "instanceGroup: string expected"; + if (message.networkEndpointGroup != null && message.hasOwnProperty("networkEndpointGroup")) + if (!$util.isString(message.networkEndpointGroup)) + return "networkEndpointGroup: string expected"; + return null; + }; + + /** + * Creates an ExternalExposure message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.securitycenter.v1.ExternalExposure} ExternalExposure + */ + ExternalExposure.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.securitycenter.v1.ExternalExposure) + return object; + var message = new $root.google.cloud.securitycenter.v1.ExternalExposure(); + if (object.privateIpAddress != null) + message.privateIpAddress = String(object.privateIpAddress); + if (object.privatePort != null) + message.privatePort = String(object.privatePort); + if (object.exposedService != null) + message.exposedService = String(object.exposedService); + if (object.publicIpAddress != null) + message.publicIpAddress = String(object.publicIpAddress); + if (object.publicPort != null) + message.publicPort = String(object.publicPort); + if (object.exposedEndpoint != null) + message.exposedEndpoint = String(object.exposedEndpoint); + if (object.loadBalancerFirewallPolicy != null) + message.loadBalancerFirewallPolicy = String(object.loadBalancerFirewallPolicy); + if (object.serviceFirewallPolicy != null) + message.serviceFirewallPolicy = String(object.serviceFirewallPolicy); + if (object.forwardingRule != null) + message.forwardingRule = String(object.forwardingRule); + if (object.backendService != null) + message.backendService = String(object.backendService); + if (object.instanceGroup != null) + message.instanceGroup = String(object.instanceGroup); + if (object.networkEndpointGroup != null) + message.networkEndpointGroup = String(object.networkEndpointGroup); + return message; + }; + + /** + * Creates a plain object from an ExternalExposure message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {google.cloud.securitycenter.v1.ExternalExposure} message ExternalExposure + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExternalExposure.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.privateIpAddress = ""; + object.privatePort = ""; + object.exposedService = ""; + object.publicIpAddress = ""; + object.publicPort = ""; + object.exposedEndpoint = ""; + object.loadBalancerFirewallPolicy = ""; + object.serviceFirewallPolicy = ""; + object.forwardingRule = ""; + object.backendService = ""; + object.instanceGroup = ""; + object.networkEndpointGroup = ""; + } + if (message.privateIpAddress != null && message.hasOwnProperty("privateIpAddress")) + object.privateIpAddress = message.privateIpAddress; + if (message.privatePort != null && message.hasOwnProperty("privatePort")) + object.privatePort = message.privatePort; + if (message.exposedService != null && message.hasOwnProperty("exposedService")) + object.exposedService = message.exposedService; + if (message.publicIpAddress != null && message.hasOwnProperty("publicIpAddress")) + object.publicIpAddress = message.publicIpAddress; + if (message.publicPort != null && message.hasOwnProperty("publicPort")) + object.publicPort = message.publicPort; + if (message.exposedEndpoint != null && message.hasOwnProperty("exposedEndpoint")) + object.exposedEndpoint = message.exposedEndpoint; + if (message.loadBalancerFirewallPolicy != null && message.hasOwnProperty("loadBalancerFirewallPolicy")) + object.loadBalancerFirewallPolicy = message.loadBalancerFirewallPolicy; + if (message.serviceFirewallPolicy != null && message.hasOwnProperty("serviceFirewallPolicy")) + object.serviceFirewallPolicy = message.serviceFirewallPolicy; + if (message.forwardingRule != null && message.hasOwnProperty("forwardingRule")) + object.forwardingRule = message.forwardingRule; + if (message.backendService != null && message.hasOwnProperty("backendService")) + object.backendService = message.backendService; + if (message.instanceGroup != null && message.hasOwnProperty("instanceGroup")) + object.instanceGroup = message.instanceGroup; + if (message.networkEndpointGroup != null && message.hasOwnProperty("networkEndpointGroup")) + object.networkEndpointGroup = message.networkEndpointGroup; + return object; + }; + + /** + * Converts this ExternalExposure to JSON. + * @function toJSON + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @instance + * @returns {Object.} JSON object + */ + ExternalExposure.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ExternalExposure + * @function getTypeUrl + * @memberof google.cloud.securitycenter.v1.ExternalExposure + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExternalExposure.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.securitycenter.v1.ExternalExposure"; + }; + + return ExternalExposure; + })(); + v1.ExternalSystem = (function() { /** @@ -14370,6 +15611,8 @@ * @property {google.cloud.securitycenter.v1.INotebook|null} [notebook] Finding notebook * @property {google.cloud.securitycenter.v1.IToxicCombination|null} [toxicCombination] Finding toxicCombination * @property {Array.|null} [groupMemberships] Finding groupMemberships + * @property {google.cloud.securitycenter.v1.IChokepoint|null} [chokepoint] Finding chokepoint + * @property {google.cloud.securitycenter.v1.IExternalExposure|null} [externalExposure] Finding externalExposure */ /** @@ -14800,6 +16043,22 @@ */ Finding.prototype.groupMemberships = $util.emptyArray; + /** + * Finding chokepoint. + * @member {google.cloud.securitycenter.v1.IChokepoint|null|undefined} chokepoint + * @memberof google.cloud.securitycenter.v1.Finding + * @instance + */ + Finding.prototype.chokepoint = null; + + /** + * Finding externalExposure. + * @member {google.cloud.securitycenter.v1.IExternalExposure|null|undefined} externalExposure + * @memberof google.cloud.securitycenter.v1.Finding + * @instance + */ + Finding.prototype.externalExposure = null; + /** * Creates a new Finding instance using the specified properties. * @function create @@ -14943,6 +16202,10 @@ if (message.groupMemberships != null && message.groupMemberships.length) for (var i = 0; i < message.groupMemberships.length; ++i) $root.google.cloud.securitycenter.v1.GroupMembership.encode(message.groupMemberships[i], writer.uint32(/* id 65, wireType 2 =*/522).fork()).ldelim(); + if (message.chokepoint != null && Object.hasOwnProperty.call(message, "chokepoint")) + $root.google.cloud.securitycenter.v1.Chokepoint.encode(message.chokepoint, writer.uint32(/* id 77, wireType 2 =*/618).fork()).ldelim(); + if (message.externalExposure != null && Object.hasOwnProperty.call(message, "externalExposure")) + $root.google.cloud.securitycenter.v1.ExternalExposure.encode(message.externalExposure, writer.uint32(/* id 84, wireType 2 =*/674).fork()).ldelim(); return writer; }; @@ -15256,6 +16519,14 @@ message.groupMemberships.push($root.google.cloud.securitycenter.v1.GroupMembership.decode(reader, reader.uint32())); break; } + case 77: { + message.chokepoint = $root.google.cloud.securitycenter.v1.Chokepoint.decode(reader, reader.uint32()); + break; + } + case 84: { + message.externalExposure = $root.google.cloud.securitycenter.v1.ExternalExposure.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -15376,6 +16647,9 @@ case 5: case 6: case 7: + case 8: + case 9: + case 10: break; } if (message.indicator != null && message.hasOwnProperty("indicator")) { @@ -15598,6 +16872,16 @@ return "groupMemberships." + error; } } + if (message.chokepoint != null && message.hasOwnProperty("chokepoint")) { + var error = $root.google.cloud.securitycenter.v1.Chokepoint.verify(message.chokepoint); + if (error) + return "chokepoint." + error; + } + if (message.externalExposure != null && message.hasOwnProperty("externalExposure")) { + var error = $root.google.cloud.securitycenter.v1.ExternalExposure.verify(message.externalExposure); + if (error) + return "externalExposure." + error; + } return null; }; @@ -15761,6 +17045,18 @@ case 7: message.findingClass = 7; break; + case "SENSITIVE_DATA_RISK": + case 8: + message.findingClass = 8; + break; + case "CHOKEPOINT": + case 9: + message.findingClass = 9; + break; + case "EXTERNAL_EXPOSURE": + case 10: + message.findingClass = 10; + break; } if (object.indicator != null) { if (typeof object.indicator !== "object") @@ -15987,6 +17283,16 @@ message.groupMemberships[i] = $root.google.cloud.securitycenter.v1.GroupMembership.fromObject(object.groupMemberships[i]); } } + if (object.chokepoint != null) { + if (typeof object.chokepoint !== "object") + throw TypeError(".google.cloud.securitycenter.v1.Finding.chokepoint: object expected"); + message.chokepoint = $root.google.cloud.securitycenter.v1.Chokepoint.fromObject(object.chokepoint); + } + if (object.externalExposure != null) { + if (typeof object.externalExposure !== "object") + throw TypeError(".google.cloud.securitycenter.v1.Finding.externalExposure: object expected"); + message.externalExposure = $root.google.cloud.securitycenter.v1.ExternalExposure.fromObject(object.externalExposure); + } return message; }; @@ -16058,6 +17364,8 @@ object.muteInfo = null; object.notebook = null; object.toxicCombination = null; + object.chokepoint = null; + object.externalExposure = null; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -16199,6 +17507,10 @@ for (var j = 0; j < message.groupMemberships.length; ++j) object.groupMemberships[j] = $root.google.cloud.securitycenter.v1.GroupMembership.toObject(message.groupMemberships[j], options); } + if (message.chokepoint != null && message.hasOwnProperty("chokepoint")) + object.chokepoint = $root.google.cloud.securitycenter.v1.Chokepoint.toObject(message.chokepoint, options); + if (message.externalExposure != null && message.hasOwnProperty("externalExposure")) + object.externalExposure = $root.google.cloud.securitycenter.v1.ExternalExposure.toObject(message.externalExposure, options); return object; }; @@ -16294,6 +17606,9 @@ * @property {number} SCC_ERROR=5 SCC_ERROR value * @property {number} POSTURE_VIOLATION=6 POSTURE_VIOLATION value * @property {number} TOXIC_COMBINATION=7 TOXIC_COMBINATION value + * @property {number} SENSITIVE_DATA_RISK=8 SENSITIVE_DATA_RISK value + * @property {number} CHOKEPOINT=9 CHOKEPOINT value + * @property {number} EXTERNAL_EXPOSURE=10 EXTERNAL_EXPOSURE value */ Finding.FindingClass = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -16305,6 +17620,9 @@ values[valuesById[5] = "SCC_ERROR"] = 5; values[valuesById[6] = "POSTURE_VIOLATION"] = 6; values[valuesById[7] = "TOXIC_COMBINATION"] = 7; + values[valuesById[8] = "SENSITIVE_DATA_RISK"] = 8; + values[valuesById[9] = "CHOKEPOINT"] = 9; + values[valuesById[10] = "EXTERNAL_EXPOSURE"] = 10; return values; })(); @@ -17217,6 +18535,7 @@ return "groupType: enum value expected"; case 0: case 1: + case 3: break; } if (message.groupId != null && message.hasOwnProperty("groupId")) @@ -17252,6 +18571,10 @@ case 1: message.groupType = 1; break; + case "GROUP_TYPE_CHOKEPOINT": + case 3: + message.groupType = 3; + break; } if (object.groupId != null) message.groupId = String(object.groupId); @@ -17314,11 +18637,13 @@ * @enum {number} * @property {number} GROUP_TYPE_UNSPECIFIED=0 GROUP_TYPE_UNSPECIFIED value * @property {number} GROUP_TYPE_TOXIC_COMBINATION=1 GROUP_TYPE_TOXIC_COMBINATION value + * @property {number} GROUP_TYPE_CHOKEPOINT=3 GROUP_TYPE_CHOKEPOINT value */ GroupMembership.GroupType = (function() { var valuesById = {}, values = Object.create(valuesById); values[valuesById[0] = "GROUP_TYPE_UNSPECIFIED"] = 0; values[valuesById[1] = "GROUP_TYPE_TOXIC_COMBINATION"] = 1; + values[valuesById[3] = "GROUP_TYPE_CHOKEPOINT"] = 3; return values; })(); @@ -137756,6 +139081,265 @@ return values; })(); + api.FieldInfo = (function() { + + /** + * Properties of a FieldInfo. + * @memberof google.api + * @interface IFieldInfo + * @property {google.api.FieldInfo.Format|null} [format] FieldInfo format + */ + + /** + * Constructs a new FieldInfo. + * @memberof google.api + * @classdesc Represents a FieldInfo. + * @implements IFieldInfo + * @constructor + * @param {google.api.IFieldInfo=} [properties] Properties to set + */ + function FieldInfo(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]]; + } + + /** + * FieldInfo format. + * @member {google.api.FieldInfo.Format} format + * @memberof google.api.FieldInfo + * @instance + */ + FieldInfo.prototype.format = 0; + + /** + * Creates a new FieldInfo instance using the specified properties. + * @function create + * @memberof google.api.FieldInfo + * @static + * @param {google.api.IFieldInfo=} [properties] Properties to set + * @returns {google.api.FieldInfo} FieldInfo instance + */ + FieldInfo.create = function create(properties) { + return new FieldInfo(properties); + }; + + /** + * Encodes the specified FieldInfo message. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @function encode + * @memberof google.api.FieldInfo + * @static + * @param {google.api.IFieldInfo} message FieldInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.format != null && Object.hasOwnProperty.call(message, "format")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.format); + return writer; + }; + + /** + * Encodes the specified FieldInfo message, length delimited. Does not implicitly {@link google.api.FieldInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.api.FieldInfo + * @static + * @param {google.api.IFieldInfo} message FieldInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FieldInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a FieldInfo message from the specified reader or buffer. + * @function decode + * @memberof google.api.FieldInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.api.FieldInfo} FieldInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldInfo.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.api.FieldInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.format = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a FieldInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.api.FieldInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.api.FieldInfo} FieldInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FieldInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a FieldInfo message. + * @function verify + * @memberof google.api.FieldInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FieldInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.format != null && message.hasOwnProperty("format")) + switch (message.format) { + default: + return "format: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + return null; + }; + + /** + * Creates a FieldInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.api.FieldInfo + * @static + * @param {Object.} object Plain object + * @returns {google.api.FieldInfo} FieldInfo + */ + FieldInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.api.FieldInfo) + return object; + var message = new $root.google.api.FieldInfo(); + switch (object.format) { + default: + if (typeof object.format === "number") { + message.format = object.format; + break; + } + break; + case "FORMAT_UNSPECIFIED": + case 0: + message.format = 0; + break; + case "UUID4": + case 1: + message.format = 1; + break; + case "IPV4": + case 2: + message.format = 2; + break; + case "IPV6": + case 3: + message.format = 3; + break; + case "IPV4_OR_IPV6": + case 4: + message.format = 4; + break; + } + return message; + }; + + /** + * Creates a plain object from a FieldInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.api.FieldInfo + * @static + * @param {google.api.FieldInfo} message FieldInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + FieldInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.format = options.enums === String ? "FORMAT_UNSPECIFIED" : 0; + if (message.format != null && message.hasOwnProperty("format")) + object.format = options.enums === String ? $root.google.api.FieldInfo.Format[message.format] === undefined ? message.format : $root.google.api.FieldInfo.Format[message.format] : message.format; + return object; + }; + + /** + * Converts this FieldInfo to JSON. + * @function toJSON + * @memberof google.api.FieldInfo + * @instance + * @returns {Object.} JSON object + */ + FieldInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for FieldInfo + * @function getTypeUrl + * @memberof google.api.FieldInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + FieldInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.api.FieldInfo"; + }; + + /** + * Format enum. + * @name google.api.FieldInfo.Format + * @enum {number} + * @property {number} FORMAT_UNSPECIFIED=0 FORMAT_UNSPECIFIED value + * @property {number} UUID4=1 UUID4 value + * @property {number} IPV4=2 IPV4 value + * @property {number} IPV6=3 IPV6 value + * @property {number} IPV4_OR_IPV6=4 IPV4_OR_IPV6 value + */ + FieldInfo.Format = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FORMAT_UNSPECIFIED"] = 0; + values[valuesById[1] = "UUID4"] = 1; + values[valuesById[2] = "IPV4"] = 2; + values[valuesById[3] = "IPV6"] = 3; + values[valuesById[4] = "IPV4_OR_IPV6"] = 4; + return values; + })(); + + return FieldInfo; + })(); + api.Http = (function() { /** @@ -149364,6 +150948,7 @@ * @property {Array.|null} [uninterpretedOption] FieldOptions uninterpretedOption * @property {google.api.IResourceReference|null} [".google.api.resourceReference"] FieldOptions .google.api.resourceReference * @property {Array.|null} [".google.api.fieldBehavior"] FieldOptions .google.api.fieldBehavior + * @property {google.api.IFieldInfo|null} [".google.api.fieldInfo"] FieldOptions .google.api.fieldInfo */ /** @@ -149505,6 +151090,14 @@ */ FieldOptions.prototype[".google.api.fieldBehavior"] = $util.emptyArray; + /** + * FieldOptions .google.api.fieldInfo. + * @member {google.api.IFieldInfo|null|undefined} .google.api.fieldInfo + * @memberof google.protobuf.FieldOptions + * @instance + */ + FieldOptions.prototype[".google.api.fieldInfo"] = null; + /** * Creates a new FieldOptions instance using the specified properties. * @function create @@ -149563,6 +151156,8 @@ writer.uint32(/* id 1052, wireType 0 =*/8416).int32(message[".google.api.fieldBehavior"][i]); if (message[".google.api.resourceReference"] != null && Object.hasOwnProperty.call(message, ".google.api.resourceReference")) $root.google.api.ResourceReference.encode(message[".google.api.resourceReference"], writer.uint32(/* id 1055, wireType 2 =*/8442).fork()).ldelim(); + if (message[".google.api.fieldInfo"] != null && Object.hasOwnProperty.call(message, ".google.api.fieldInfo")) + $root.google.api.FieldInfo.encode(message[".google.api.fieldInfo"], writer.uint32(/* id 291403980, wireType 2 =*/2331231842).fork()).ldelim(); return writer; }; @@ -149677,6 +151272,10 @@ message[".google.api.fieldBehavior"].push(reader.int32()); break; } + case 291403980: { + message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -149824,6 +151423,11 @@ break; } } + if (message[".google.api.fieldInfo"] != null && message.hasOwnProperty(".google.api.fieldInfo")) { + var error = $root.google.api.FieldInfo.verify(message[".google.api.fieldInfo"]); + if (error) + return ".google.api.fieldInfo." + error; + } return null; }; @@ -150043,6 +151647,11 @@ break; } } + if (object[".google.api.fieldInfo"] != null) { + if (typeof object[".google.api.fieldInfo"] !== "object") + throw TypeError(".google.protobuf.FieldOptions..google.api.fieldInfo: object expected"); + message[".google.api.fieldInfo"] = $root.google.api.FieldInfo.fromObject(object[".google.api.fieldInfo"]); + } return message; }; @@ -150077,6 +151686,7 @@ object.retention = options.enums === String ? "RETENTION_UNKNOWN" : 0; object.features = null; object[".google.api.resourceReference"] = null; + object[".google.api.fieldInfo"] = null; } if (message.ctype != null && message.hasOwnProperty("ctype")) object.ctype = options.enums === String ? $root.google.protobuf.FieldOptions.CType[message.ctype] === undefined ? message.ctype : $root.google.protobuf.FieldOptions.CType[message.ctype] : message.ctype; @@ -150120,6 +151730,8 @@ } if (message[".google.api.resourceReference"] != null && message.hasOwnProperty(".google.api.resourceReference")) object[".google.api.resourceReference"] = $root.google.api.ResourceReference.toObject(message[".google.api.resourceReference"], options); + if (message[".google.api.fieldInfo"] != null && message.hasOwnProperty(".google.api.fieldInfo")) + object[".google.api.fieldInfo"] = $root.google.api.FieldInfo.toObject(message[".google.api.fieldInfo"], options); return object; }; diff --git a/packages/google-cloud-securitycenter/protos/protos.json b/packages/google-cloud-securitycenter/protos/protos.json index ea701079352..b5bf0b8d7b0 100644 --- a/packages/google-cloud-securitycenter/protos/protos.json +++ b/packages/google-cloud-securitycenter/protos/protos.json @@ -490,6 +490,15 @@ } } }, + "Chokepoint": { + "fields": { + "relatedFindings": { + "rule": "repeated", + "type": "string", + "id": 1 + } + } + }, "CloudArmor": { "fields": { "securityPolicy": { @@ -590,6 +599,11 @@ "parentType": { "type": "ParentType", "id": 2 + }, + "infoTypes": { + "rule": "repeated", + "type": "InfoType", + "id": 3 } }, "nested": { @@ -602,6 +616,41 @@ } } }, + "InfoType": { + "fields": { + "name": { + "type": "string", + "id": 1 + }, + "version": { + "type": "string", + "id": 2 + }, + "sensitivityScore": { + "type": "SensitivityScore", + "id": 3 + } + } + }, + "SensitivityScore": { + "fields": { + "score": { + "type": "SensitivityScoreLevel", + "id": 1 + } + }, + "nested": { + "SensitivityScoreLevel": { + "values": { + "SENSITIVITY_SCORE_LEVEL_UNSPECIFIED": 0, + "SENSITIVITY_LOW": 10, + "SENSITIVITY_UNKNOWN": 12, + "SENSITIVITY_MODERATE": 20, + "SENSITIVITY_HIGH": 30 + } + } + } + }, "CloudDlpInspection": { "fields": { "inspectJob": { @@ -1093,6 +1142,64 @@ } } }, + "ExternalExposure": { + "fields": { + "privateIpAddress": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_info).format": "IPV4_OR_IPV6" + } + }, + "privatePort": { + "type": "string", + "id": 2 + }, + "exposedService": { + "type": "string", + "id": 3 + }, + "publicIpAddress": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_info).format": "IPV4_OR_IPV6" + } + }, + "publicPort": { + "type": "string", + "id": 5 + }, + "exposedEndpoint": { + "type": "string", + "id": 6 + }, + "loadBalancerFirewallPolicy": { + "type": "string", + "id": 7 + }, + "serviceFirewallPolicy": { + "type": "string", + "id": 8 + }, + "forwardingRule": { + "type": "string", + "id": 9 + }, + "backendService": { + "type": "string", + "id": 10 + }, + "instanceGroup": { + "type": "string", + "id": 11 + }, + "networkEndpointGroup": { + "type": "string", + "id": 12 + } + } + }, "ExternalSystem": { "options": { "(google.api.resource).type": "securitycenter.googleapis.com/ExternalSystem", @@ -1462,6 +1569,14 @@ "rule": "repeated", "type": "GroupMembership", "id": 65 + }, + "chokepoint": { + "type": "Chokepoint", + "id": 77 + }, + "externalExposure": { + "type": "ExternalExposure", + "id": 84 } }, "nested": { @@ -1498,7 +1613,10 @@ "OBSERVATION": 4, "SCC_ERROR": 5, "POSTURE_VIOLATION": 6, - "TOXIC_COMBINATION": 7 + "TOXIC_COMBINATION": 7, + "SENSITIVE_DATA_RISK": 8, + "CHOKEPOINT": 9, + "EXTERNAL_EXPOSURE": 10 } }, "MuteInfo": { @@ -1557,7 +1675,8 @@ "GroupType": { "values": { "GROUP_TYPE_UNSPECIFIED": 0, - "GROUP_TYPE_TOXIC_COMBINATION": 1 + "GROUP_TYPE_TOXIC_COMBINATION": 1, + "GROUP_TYPE_CHOKEPOINT": 3 } } } @@ -15007,6 +15126,30 @@ "IDENTIFIER": 8 } }, + "fieldInfo": { + "type": "google.api.FieldInfo", + "id": 291403980, + "extend": "google.protobuf.FieldOptions" + }, + "FieldInfo": { + "fields": { + "format": { + "type": "Format", + "id": 1 + } + }, + "nested": { + "Format": { + "values": { + "FORMAT_UNSPECIFIED": 0, + "UUID4": 1, + "IPV4": 2, + "IPV6": 3, + "IPV4_OR_IPV6": 4 + } + } + } + }, "http": { "type": "HttpRule", "id": 72295728, diff --git a/packages/google-cloud-securitycenter/src/v1/security_center_proto_list.json b/packages/google-cloud-securitycenter/src/v1/security_center_proto_list.json index c0d87dc84bf..4a842ba0b8b 100644 --- a/packages/google-cloud-securitycenter/src/v1/security_center_proto_list.json +++ b/packages/google-cloud-securitycenter/src/v1/security_center_proto_list.json @@ -6,6 +6,7 @@ "../../protos/google/cloud/securitycenter/v1/attack_path.proto", "../../protos/google/cloud/securitycenter/v1/backup_disaster_recovery.proto", "../../protos/google/cloud/securitycenter/v1/bigquery_export.proto", + "../../protos/google/cloud/securitycenter/v1/chokepoint.proto", "../../protos/google/cloud/securitycenter/v1/cloud_armor.proto", "../../protos/google/cloud/securitycenter/v1/cloud_dlp_data_profile.proto", "../../protos/google/cloud/securitycenter/v1/cloud_dlp_inspection.proto", @@ -19,6 +20,7 @@ "../../protos/google/cloud/securitycenter/v1/event_threat_detection_custom_module.proto", "../../protos/google/cloud/securitycenter/v1/event_threat_detection_custom_module_validation_errors.proto", "../../protos/google/cloud/securitycenter/v1/exfiltration.proto", + "../../protos/google/cloud/securitycenter/v1/external_exposure.proto", "../../protos/google/cloud/securitycenter/v1/external_system.proto", "../../protos/google/cloud/securitycenter/v1/file.proto", "../../protos/google/cloud/securitycenter/v1/finding.proto",