diff --git a/apigee/v1/apigee-api.json b/apigee/v1/apigee-api.json index 0963a0365d0..e2ba612108a 100644 --- a/apigee/v1/apigee-api.json +++ b/apigee/v1/apigee-api.json @@ -10045,7 +10045,7 @@ } } }, - "revision": "20240607", + "revision": "20240617", "rootUrl": "https://apigee.googleapis.com/", "schemas": { "EdgeConfigstoreBundleBadBundle": { @@ -14097,7 +14097,6 @@ "type": "object" }, "GoogleCloudApigeeV1ListApiProxiesResponse": { - "description": "To change this message, in the same CL add a change log in go/changing-api-proto-breaks-ui", "id": "GoogleCloudApigeeV1ListApiProxiesResponse", "properties": { "proxies": { @@ -14611,7 +14610,6 @@ "type": "object" }, "GoogleCloudApigeeV1ListSharedFlowsResponse": { - "description": "To change this message, in the same CL add a change log in go/changing-api-proto-breaks-ui", "id": "GoogleCloudApigeeV1ListSharedFlowsResponse", "properties": { "sharedFlows": { diff --git a/apigee/v1/apigee-gen.go b/apigee/v1/apigee-gen.go index 515d720ec2a..2c293b1beba 100644 --- a/apigee/v1/apigee-gen.go +++ b/apigee/v1/apigee-gen.go @@ -5849,8 +5849,6 @@ func (s *GoogleCloudApigeeV1ListApiProductsResponse) MarshalJSON() ([]byte, erro return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } -// GoogleCloudApigeeV1ListApiProxiesResponse: To change this message, in the -// same CL add a change log in go/changing-api-proto-breaks-ui type GoogleCloudApigeeV1ListApiProxiesResponse struct { Proxies []*GoogleCloudApigeeV1ApiProxy `json:"proxies,omitempty"` @@ -6708,8 +6706,6 @@ func (s *GoogleCloudApigeeV1ListSecurityReportsResponse) MarshalJSON() ([]byte, return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } -// GoogleCloudApigeeV1ListSharedFlowsResponse: To change this message, in the -// same CL add a change log in go/changing-api-proto-breaks-ui type GoogleCloudApigeeV1ListSharedFlowsResponse struct { SharedFlows []*GoogleCloudApigeeV1SharedFlow `json:"sharedFlows,omitempty"` diff --git a/bigqueryreservation/v1/bigqueryreservation-api.json b/bigqueryreservation/v1/bigqueryreservation-api.json index c0432bc1af5..dc78d4b9818 100644 --- a/bigqueryreservation/v1/bigqueryreservation-api.json +++ b/bigqueryreservation/v1/bigqueryreservation-api.json @@ -19,11 +19,6 @@ "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/bigquery/", "endpoints": [ - { - "description": "Regional Endpoint", - "endpointUrl": "https://bigqueryreservation.me-central2.rep.googleapis.com/", - "location": "me-central2" - }, { "description": "Regional Endpoint", "endpointUrl": "https://bigqueryreservation.europe-west3.rep.googleapis.com/", @@ -34,11 +29,21 @@ "endpointUrl": "https://bigqueryreservation.europe-west9.rep.googleapis.com/", "location": "europe-west9" }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigqueryreservation.me-central2.rep.googleapis.com/", + "location": "me-central2" + }, { "description": "Regional Endpoint", "endpointUrl": "https://bigqueryreservation.us-east4.rep.googleapis.com/", "location": "us-east4" }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigqueryreservation.us-east7.rep.googleapis.com/", + "location": "us-east7" + }, { "description": "Regional Endpoint", "endpointUrl": "https://bigqueryreservation.us-west1.rep.googleapis.com/", @@ -880,7 +885,7 @@ } } }, - "revision": "20240321", + "revision": "20240611", "rootUrl": "https://bigqueryreservation.googleapis.com/", "schemas": { "Assignment": { diff --git a/container/v1/container-api.json b/container/v1/container-api.json index 79bf232105e..9328a7c0257 100644 --- a/container/v1/container-api.json +++ b/container/v1/container-api.json @@ -2540,7 +2540,7 @@ } } }, - "revision": "20240510", + "revision": "20240604", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -4244,10 +4244,16 @@ "CHANNEL_EXPERIMENTAL", "CHANNEL_STANDARD" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "enumDescriptions": [ "Default value.", "Gateway API support is disabled", - "Gateway API support is enabled, experimental CRDs are installed", + "Deprecated: use CHANNEL_STANDARD instead. Gateway API support is enabled, experimental CRDs are installed", "Gateway API support is enabled, standard CRDs are installed" ], "type": "string" diff --git a/container/v1/container-gen.go b/container/v1/container-gen.go index 9cc6427b9ad..6753a5ca94c 100644 --- a/container/v1/container-gen.go +++ b/container/v1/container-gen.go @@ -2323,8 +2323,8 @@ type GatewayAPIConfig struct { // Possible values: // "CHANNEL_UNSPECIFIED" - Default value. // "CHANNEL_DISABLED" - Gateway API support is disabled - // "CHANNEL_EXPERIMENTAL" - Gateway API support is enabled, experimental CRDs - // are installed + // "CHANNEL_EXPERIMENTAL" - Deprecated: use CHANNEL_STANDARD instead. Gateway + // API support is enabled, experimental CRDs are installed // "CHANNEL_STANDARD" - Gateway API support is enabled, standard CRDs are // installed Channel string `json:"channel,omitempty"` diff --git a/container/v1beta1/container-api.json b/container/v1beta1/container-api.json index 137445a2ada..cb860525eb5 100644 --- a/container/v1beta1/container-api.json +++ b/container/v1beta1/container-api.json @@ -2565,7 +2565,7 @@ } } }, - "revision": "20240510", + "revision": "20240604", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -4534,10 +4534,16 @@ "CHANNEL_EXPERIMENTAL", "CHANNEL_STANDARD" ], + "enumDeprecated": [ + false, + false, + true, + false + ], "enumDescriptions": [ "Default value.", "Gateway API support is disabled", - "Gateway API support is enabled, experimental CRDs are installed", + "Deprecated: use CHANNEL_STANDARD instead. Gateway API support is enabled, experimental CRDs are installed", "Gateway API support is enabled, standard CRDs are installed" ], "type": "string" diff --git a/container/v1beta1/container-gen.go b/container/v1beta1/container-gen.go index 9f7f29759e1..b3e43ac4d62 100644 --- a/container/v1beta1/container-gen.go +++ b/container/v1beta1/container-gen.go @@ -2629,8 +2629,8 @@ type GatewayAPIConfig struct { // Possible values: // "CHANNEL_UNSPECIFIED" - Default value. // "CHANNEL_DISABLED" - Gateway API support is disabled - // "CHANNEL_EXPERIMENTAL" - Gateway API support is enabled, experimental CRDs - // are installed + // "CHANNEL_EXPERIMENTAL" - Deprecated: use CHANNEL_STANDARD instead. Gateway + // API support is enabled, experimental CRDs are installed // "CHANNEL_STANDARD" - Gateway API support is enabled, standard CRDs are // installed Channel string `json:"channel,omitempty"` diff --git a/containeranalysis/v1/containeranalysis-api.json b/containeranalysis/v1/containeranalysis-api.json index b5a9c08049b..3e062bb16c5 100644 --- a/containeranalysis/v1/containeranalysis-api.json +++ b/containeranalysis/v1/containeranalysis-api.json @@ -15,6 +15,13 @@ "description": "This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://containeranalysis.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -1065,7 +1072,7 @@ } } }, - "revision": "20240524", + "revision": "20240614", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { diff --git a/containeranalysis/v1alpha1/containeranalysis-api.json b/containeranalysis/v1alpha1/containeranalysis-api.json index 37976226c14..73356be66df 100644 --- a/containeranalysis/v1alpha1/containeranalysis-api.json +++ b/containeranalysis/v1alpha1/containeranalysis-api.json @@ -15,6 +15,13 @@ "description": "This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://containeranalysis.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -1233,7 +1240,7 @@ } } }, - "revision": "20240524", + "revision": "20240614", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AnalysisCompleted": { diff --git a/containeranalysis/v1beta1/containeranalysis-api.json b/containeranalysis/v1beta1/containeranalysis-api.json index 866c57f60d9..2c65474ce85 100644 --- a/containeranalysis/v1beta1/containeranalysis-api.json +++ b/containeranalysis/v1beta1/containeranalysis-api.json @@ -15,6 +15,13 @@ "description": "This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://containeranalysis.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -1121,7 +1128,7 @@ } } }, - "revision": "20240524", + "revision": "20240614", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { diff --git a/datacatalog/v1/datacatalog-api.json b/datacatalog/v1/datacatalog-api.json index 9d5c5ba57a6..699fae1ce80 100644 --- a/datacatalog/v1/datacatalog-api.json +++ b/datacatalog/v1/datacatalog-api.json @@ -2144,7 +2144,7 @@ } } }, - "revision": "20240511", + "revision": "20240614", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -4211,9 +4211,13 @@ "DATAPLEX_TRANSFER_STATUS_UNSPECIFIED", "MIGRATED" ], + "enumDeprecated": [ + false, + true + ], "enumDescriptions": [ "Default value. TagTemplate and its tags are only visible and editable in DataCatalog.", - "TagTemplate and its tags are auto-copied to Dataplex service. Visible in both services. Editable in DataCatalog, read-only in Dataplex." + "TagTemplate and its tags are auto-copied to Dataplex service. Visible in both services. Editable in DataCatalog, read-only in Dataplex. Deprecated: Individual TagTemplate migration is deprecated in favor of organization or project wide TagTemplate migration opt-in." ], "type": "string" }, diff --git a/datacatalog/v1/datacatalog-gen.go b/datacatalog/v1/datacatalog-gen.go index cda363d938e..ab78b1ee1b5 100644 --- a/datacatalog/v1/datacatalog-gen.go +++ b/datacatalog/v1/datacatalog-gen.go @@ -3254,6 +3254,8 @@ type GoogleCloudDatacatalogV1TagTemplate struct { // its tags are only visible and editable in DataCatalog. // "MIGRATED" - TagTemplate and its tags are auto-copied to Dataplex service. // Visible in both services. Editable in DataCatalog, read-only in Dataplex. + // Deprecated: Individual TagTemplate migration is deprecated in favor of + // organization or project wide TagTemplate migration opt-in. DataplexTransferStatus string `json:"dataplexTransferStatus,omitempty"` // DisplayName: Display name for this template. Defaults to an empty string. // The name must contain only Unicode letters, numbers (0-9), underscores (_), diff --git a/datacatalog/v1beta1/datacatalog-api.json b/datacatalog/v1beta1/datacatalog-api.json index 7e4122a8b27..dbcc48e9eab 100644 --- a/datacatalog/v1beta1/datacatalog-api.json +++ b/datacatalog/v1beta1/datacatalog-api.json @@ -1813,7 +1813,7 @@ } } }, - "revision": "20240511", + "revision": "20240614", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -4280,9 +4280,13 @@ "DATAPLEX_TRANSFER_STATUS_UNSPECIFIED", "MIGRATED" ], + "enumDeprecated": [ + false, + true + ], "enumDescriptions": [ "Default value. TagTemplate and its tags are only visible and editable in DataCatalog.", - "TagTemplate and its tags are auto-copied to Dataplex service. Visible in both services. Editable in DataCatalog, read-only in Dataplex." + "TagTemplate and its tags are auto-copied to Dataplex service. Visible in both services. Editable in DataCatalog, read-only in Dataplex. Deprecated: Individual TagTemplate migration is deprecated in favor of organization or project wide TagTemplate migration opt-in." ], "readOnly": true, "type": "string" diff --git a/datacatalog/v1beta1/datacatalog-gen.go b/datacatalog/v1beta1/datacatalog-gen.go index 32edb09baca..efb405bcd52 100644 --- a/datacatalog/v1beta1/datacatalog-gen.go +++ b/datacatalog/v1beta1/datacatalog-gen.go @@ -3760,6 +3760,8 @@ type GoogleCloudDatacatalogV1beta1TagTemplate struct { // its tags are only visible and editable in DataCatalog. // "MIGRATED" - TagTemplate and its tags are auto-copied to Dataplex service. // Visible in both services. Editable in DataCatalog, read-only in Dataplex. + // Deprecated: Individual TagTemplate migration is deprecated in favor of + // organization or project wide TagTemplate migration opt-in. DataplexTransferStatus string `json:"dataplexTransferStatus,omitempty"` // DisplayName: The display name for this template. Defaults to an empty // string. diff --git a/securitycenter/v1/securitycenter-api.json b/securitycenter/v1/securitycenter-api.json index 44416786eba..e6dfc5637e7 100644 --- a/securitycenter/v1/securitycenter-api.json +++ b/securitycenter/v1/securitycenter-api.json @@ -6027,7 +6027,7 @@ } } }, - "revision": "20240520", + "revision": "20240620", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -6528,6 +6528,69 @@ }, "type": "object" }, + "AzureManagementGroup": { + "description": "Represents an Azure management group.", + "id": "AzureManagementGroup", + "properties": { + "displayName": { + "description": "The display name of the Azure management group.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure management group, for example, \"20000000-0001-0000-0000-000000000000\".", + "type": "string" + } + }, + "type": "object" + }, + "AzureMetadata": { + "description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", + "id": "AzureMetadata", + "properties": { + "managementGroups": { + "description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", + "items": { + "$ref": "AzureManagementGroup" + }, + "type": "array" + }, + "resourceGroup": { + "$ref": "AzureResourceGroup", + "description": "The Azure resource group associated with the resource." + }, + "subscription": { + "$ref": "AzureSubscription", + "description": "The Azure subscription associated with the resource." + } + }, + "type": "object" + }, + "AzureResourceGroup": { + "description": "Represents an Azure resource group.", + "id": "AzureResourceGroup", + "properties": { + "name": { + "description": "The name of the Azure resource group. This is not a UUID.", + "type": "string" + } + }, + "type": "object" + }, + "AzureSubscription": { + "description": "Represents an Azure subscription.", + "id": "AzureSubscription", + "properties": { + "displayName": { + "description": "The display name of the Azure subscription.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure subscription, for example, \"291bba3f-e0a5-47bc-a099-3bdcb2a50a05\".", + "type": "string" + } + }, + "type": "object" + }, "BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "BackupDisasterRecovery", @@ -7614,7 +7677,8 @@ "MISCONFIGURATION", "OBSERVATION", "SCC_ERROR", - "POSTURE_VIOLATION" + "POSTURE_VIOLATION", + "TOXIC_COMBINATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -7623,10 +7687,18 @@ "Describes a potential weakness in cloud resource/asset configuration that increases risk.", "Describes a security observation that is for informational purposes.", "Describes an error that prevents some SCC functionality.", - "Describes a potential security risk due to a change in the security posture." + "Describes a potential security risk due to a change in the security posture.", + "Describes a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination." ], "type": "string" }, + "groupMemberships": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", + "items": { + "$ref": "GroupMembership" + }, + "type": "array" + }, "iamBindings": { "description": "Represents IAM bindings associated with the finding.", "items": { @@ -7781,6 +7853,10 @@ ], "type": "string" }, + "toxicCombination": { + "$ref": "ToxicCombination", + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." + }, "vulnerability": { "$ref": "Vulnerability", "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" @@ -8186,6 +8262,10 @@ "$ref": "AwsMetadata", "description": "The AWS metadata associated with the finding." }, + "azureMetadata": { + "$ref": "AzureMetadata", + "description": "The Azure metadata associated with the finding." + }, "cloudProvider": { "description": "Indicates which cloud provider the resource resides in.", "enum": [ @@ -8967,6 +9047,69 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AzureManagementGroup": { + "description": "Represents an Azure management group.", + "id": "GoogleCloudSecuritycenterV2AzureManagementGroup", + "properties": { + "displayName": { + "description": "The display name of the Azure management group.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure management group, for example, \"20000000-0001-0000-0000-000000000000\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureMetadata": { + "description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", + "id": "GoogleCloudSecuritycenterV2AzureMetadata", + "properties": { + "managementGroups": { + "description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2AzureManagementGroup" + }, + "type": "array" + }, + "resourceGroup": { + "$ref": "GoogleCloudSecuritycenterV2AzureResourceGroup", + "description": "The Azure resource group associated with the resource." + }, + "subscription": { + "$ref": "GoogleCloudSecuritycenterV2AzureSubscription", + "description": "The Azure subscription associated with the resource." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureResourceGroup": { + "description": "Represents an Azure resource group.", + "id": "GoogleCloudSecuritycenterV2AzureResourceGroup", + "properties": { + "name": { + "description": "The name of the Azure resource group. This is not a UUID.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureSubscription": { + "description": "Represents an Azure subscription.", + "id": "GoogleCloudSecuritycenterV2AzureSubscription", + "properties": { + "displayName": { + "description": "The display name of the Azure subscription.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure subscription, for example, \"291bba3f-e0a5-47bc-a099-3bdcb2a50a05\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", @@ -9877,7 +10020,8 @@ "MISCONFIGURATION", "OBSERVATION", "SCC_ERROR", - "POSTURE_VIOLATION" + "POSTURE_VIOLATION", + "TOXIC_COMBINATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -9886,10 +10030,18 @@ "Describes a potential weakness in cloud resource/asset configuration that increases risk.", "Describes a security observation that is for informational purposes.", "Describes an error that prevents some SCC functionality.", - "Describes a potential security risk due to a change in the security posture." + "Describes a potential security risk due to a change in the security posture.", + "Describes a combination of security issues that represent a more severe security problem when taken together." ], "type": "string" }, + "groupMemberships": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2GroupMembership" + }, + "type": "array" + }, "iamBindings": { "description": "Represents IAM bindings associated with the finding.", "items": { @@ -10045,6 +10197,10 @@ "readOnly": true, "type": "string" }, + "toxicCombination": { + "$ref": "GoogleCloudSecuritycenterV2ToxicCombination", + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." + }, "vulnerability": { "$ref": "GoogleCloudSecuritycenterV2Vulnerability", "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" @@ -10078,6 +10234,29 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2GroupMembership": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", + "id": "GoogleCloudSecuritycenterV2GroupMembership", + "properties": { + "groupId": { + "description": "ID of the group.", + "type": "string" + }, + "groupType": { + "description": "Type of group.", + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "GROUP_TYPE_TOXIC_COMBINATION" + ], + "enumDescriptions": [ + "Default value.", + "Group represents a toxic combination." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2IamBinding": { "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", "id": "GoogleCloudSecuritycenterV2IamBinding", @@ -10404,7 +10583,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -10466,7 +10648,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1613", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -10573,7 +10758,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -10635,7 +10823,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1613", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -11017,6 +11208,10 @@ "$ref": "GoogleCloudSecuritycenterV2AwsMetadata", "description": "The AWS metadata associated with the finding." }, + "azureMetadata": { + "$ref": "GoogleCloudSecuritycenterV2AzureMetadata", + "description": "The Azure metadata associated with the finding." + }, "cloudProvider": { "description": "Indicates which cloud provider the finding is from.", "enum": [ @@ -11465,6 +11660,25 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2ToxicCombination": { + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", + "id": "GoogleCloudSecuritycenterV2ToxicCombination", + "properties": { + "attackExposureScore": { + "description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", + "format": "double", + "type": "number" + }, + "relatedFindings": { + "description": "List of resource names of findings associated with this toxic combination. For example, organizations/123/sources/456/findings/789.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Vulnerability": { "description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", "id": "GoogleCloudSecuritycenterV2Vulnerability", @@ -11623,6 +11837,29 @@ }, "type": "object" }, + "GroupMembership": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", + "id": "GroupMembership", + "properties": { + "groupId": { + "description": "ID of the group.", + "type": "string" + }, + "groupType": { + "description": "Type of group.", + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "GROUP_TYPE_TOXIC_COMBINATION" + ], + "enumDescriptions": [ + "Default value.", + "Group represents a toxic combination." + ], + "type": "string" + } + }, + "type": "object" + }, "GroupResult": { "description": "Result containing the properties and count of a groupBy request.", "id": "GroupResult", @@ -12353,7 +12590,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -12415,7 +12655,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1609", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -12522,7 +12765,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -12584,7 +12830,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1609", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -13046,6 +13295,10 @@ "$ref": "AwsMetadata", "description": "The AWS metadata associated with the finding." }, + "azureMetadata": { + "$ref": "AzureMetadata", + "description": "The Azure metadata associated with the finding." + }, "cloudProvider": { "description": "Indicates which cloud provider the finding is from.", "enum": [ @@ -13715,6 +13968,25 @@ }, "type": "object" }, + "ToxicCombination": { + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", + "id": "ToxicCombination", + "properties": { + "attackExposureScore": { + "description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", + "format": "double", + "type": "number" + }, + "relatedFindings": { + "description": "List of resource names of findings associated with this toxic combination. For example, organizations/123/sources/456/findings/789.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ValidateEventThreatDetectionCustomModuleRequest": { "description": "Request to validate an Event Threat Detection custom module.", "id": "ValidateEventThreatDetectionCustomModuleRequest", diff --git a/securitycenter/v1/securitycenter-gen.go b/securitycenter/v1/securitycenter-gen.go index 579607e1d37..e783cd95122 100644 --- a/securitycenter/v1/securitycenter-gen.go +++ b/securitycenter/v1/securitycenter-gen.go @@ -1546,6 +1546,107 @@ func (s *AwsOrganizationalUnit) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// AzureManagementGroup: Represents an Azure management group. +type AzureManagementGroup struct { + // DisplayName: The display name of the Azure management group. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure management group, for example, + // "20000000-0001-0000-0000-000000000000". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureManagementGroup) MarshalJSON() ([]byte, error) { + type NoMethod AzureManagementGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureMetadata: Azure metadata associated with the resource, only applicable +// if the finding's cloud provider is Microsoft Azure. +type AzureMetadata struct { + // ManagementGroups: A list of Azure management groups associated with the + // resource, ordered from lowest level (closest to the subscription) to highest + // level. + ManagementGroups []*AzureManagementGroup `json:"managementGroups,omitempty"` + // ResourceGroup: The Azure resource group associated with the resource. + ResourceGroup *AzureResourceGroup `json:"resourceGroup,omitempty"` + // Subscription: The Azure subscription associated with the resource. + Subscription *AzureSubscription `json:"subscription,omitempty"` + // ForceSendFields is a list of field names (e.g. "ManagementGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ManagementGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureMetadata) MarshalJSON() ([]byte, error) { + type NoMethod AzureMetadata + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureResourceGroup: Represents an Azure resource group. +type AzureResourceGroup struct { + // Name: The name of the Azure resource group. This is not a UUID. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureResourceGroup) MarshalJSON() ([]byte, error) { + type NoMethod AzureResourceGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureSubscription: Represents an Azure subscription. +type AzureSubscription struct { + // DisplayName: The display name of the Azure subscription. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure subscription, for example, + // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureSubscription) MarshalJSON() ([]byte, error) { + type NoMethod AzureSubscription + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // BackupDisasterRecovery: Information related to Google Cloud Backup and DR // Service findings. type BackupDisasterRecovery struct { @@ -2925,7 +3026,14 @@ type Finding struct { // "SCC_ERROR" - Describes an error that prevents some SCC functionality. // "POSTURE_VIOLATION" - Describes a potential security risk due to a change // in the security posture. + // "TOXIC_COMBINATION" - Describes a group of security issues that, when the + // issues occur together, represent a greater risk than when the issues occur + // independently. A group of such issues is referred to as a toxic combination. FindingClass string `json:"findingClass,omitempty"` + // GroupMemberships: Contains details about groups of which this finding is a + // member. A group is a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + GroupMemberships []*GroupMembership `json:"groupMemberships,omitempty"` // IamBindings: Represents IAM bindings associated with the finding. IamBindings []*IamBinding `json:"iamBindings,omitempty"` // Indicator: Represents what's commonly known as an *indicator of compromise* @@ -3061,6 +3169,12 @@ type Finding struct { // "INACTIVE" - The finding has been fixed, triaged as a non-issue or // otherwise addressed and is no longer active. State string `json:"state,omitempty"` + // ToxicCombination: Contains details about a group of security issues that, + // when the issues occur together, represent a greater risk than when the + // issues occur independently. A group of such issues is referred to as a toxic + // combination. This field cannot be updated. Its value is ignored in all + // update requests. + ToxicCombination *ToxicCombination `json:"toxicCombination,omitempty"` // Vulnerability: Represents vulnerability-specific fields like CVE and CVSS // scores. CVE stands for Common Vulnerabilities and Exposures // (https://cve.mitre.org/about/) @@ -3631,6 +3745,8 @@ func (s *GoogleCloudSecuritycenterV1Property) MarshalJSON() ([]byte, error) { type GoogleCloudSecuritycenterV1Resource struct { // AwsMetadata: The AWS metadata associated with the finding. AwsMetadata *AwsMetadata `json:"awsMetadata,omitempty"` + // AzureMetadata: The Azure metadata associated with the finding. + AzureMetadata *AzureMetadata `json:"azureMetadata,omitempty"` // CloudProvider: Indicates which cloud provider the resource resides in. // // Possible values: @@ -4620,6 +4736,111 @@ func (s *GoogleCloudSecuritycenterV2AwsOrganizationalUnit) MarshalJSON() ([]byte return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2AzureManagementGroup: Represents an Azure +// management group. +type GoogleCloudSecuritycenterV2AzureManagementGroup struct { + // DisplayName: The display name of the Azure management group. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure management group, for example, + // "20000000-0001-0000-0000-000000000000". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureManagementGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureManagementGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureMetadata: Azure metadata associated with the +// resource, only applicable if the finding's cloud provider is Microsoft +// Azure. +type GoogleCloudSecuritycenterV2AzureMetadata struct { + // ManagementGroups: A list of Azure management groups associated with the + // resource, ordered from lowest level (closest to the subscription) to highest + // level. + ManagementGroups []*GoogleCloudSecuritycenterV2AzureManagementGroup `json:"managementGroups,omitempty"` + // ResourceGroup: The Azure resource group associated with the resource. + ResourceGroup *GoogleCloudSecuritycenterV2AzureResourceGroup `json:"resourceGroup,omitempty"` + // Subscription: The Azure subscription associated with the resource. + Subscription *GoogleCloudSecuritycenterV2AzureSubscription `json:"subscription,omitempty"` + // ForceSendFields is a list of field names (e.g. "ManagementGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ManagementGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureMetadata) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureMetadata + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureResourceGroup: Represents an Azure resource +// group. +type GoogleCloudSecuritycenterV2AzureResourceGroup struct { + // Name: The name of the Azure resource group. This is not a UUID. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureResourceGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureResourceGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureSubscription: Represents an Azure +// subscription. +type GoogleCloudSecuritycenterV2AzureSubscription struct { + // DisplayName: The display name of the Azure subscription. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure subscription, for example, + // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureSubscription) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureSubscription + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV2BackupDisasterRecovery: Information related to // Google Cloud Backup and DR Service findings. type GoogleCloudSecuritycenterV2BackupDisasterRecovery struct { @@ -5685,7 +5906,13 @@ type GoogleCloudSecuritycenterV2Finding struct { // "SCC_ERROR" - Describes an error that prevents some SCC functionality. // "POSTURE_VIOLATION" - Describes a potential security risk due to a change // in the security posture. + // "TOXIC_COMBINATION" - Describes a combination of security issues that + // represent a more severe security problem when taken together. FindingClass string `json:"findingClass,omitempty"` + // GroupMemberships: Contains details about groups of which this finding is a + // member. A group is a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + GroupMemberships []*GoogleCloudSecuritycenterV2GroupMembership `json:"groupMemberships,omitempty"` // IamBindings: Represents IAM bindings associated with the finding. IamBindings []*GoogleCloudSecuritycenterV2IamBinding `json:"iamBindings,omitempty"` // Indicator: Represents what's commonly known as an *indicator of compromise* @@ -5832,6 +6059,12 @@ type GoogleCloudSecuritycenterV2Finding struct { // "INACTIVE" - The finding has been fixed, triaged as a non-issue or // otherwise addressed and is no longer active. State string `json:"state,omitempty"` + // ToxicCombination: Contains details about a group of security issues that, + // when the issues occur together, represent a greater risk than when the + // issues occur independently. A group of such issues is referred to as a toxic + // combination. This field cannot be updated. Its value is ignored in all + // update requests. + ToxicCombination *GoogleCloudSecuritycenterV2ToxicCombination `json:"toxicCombination,omitempty"` // Vulnerability: Represents vulnerability-specific fields like CVE and CVSS // scores. CVE stands for Common Vulnerabilities and Exposures // (https://cve.mitre.org/about/) @@ -5903,6 +6136,36 @@ func (s *GoogleCloudSecuritycenterV2Geolocation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2GroupMembership: Contains details about groups of +// which this finding is a member. A group is a collection of findings that are +// related in some way. +type GoogleCloudSecuritycenterV2GroupMembership struct { + // GroupId: ID of the group. + GroupId string `json:"groupId,omitempty"` + // GroupType: Type of group. + // + // Possible values: + // "GROUP_TYPE_UNSPECIFIED" - Default value. + // "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination. + GroupType string `json:"groupType,omitempty"` + // ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GroupId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2GroupMembership) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2GroupMembership + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV2IamBinding: Represents a particular IAM binding, // which captures a member's role addition, removal, or state. type GoogleCloudSecuritycenterV2IamBinding struct { @@ -6251,7 +6514,10 @@ type GoogleCloudSecuritycenterV2MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1613 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this // finding, if any. @@ -6340,7 +6606,10 @@ type GoogleCloudSecuritycenterV2MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1613 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8". Version string `json:"version,omitempty"` @@ -6833,6 +7102,8 @@ func (s *GoogleCloudSecuritycenterV2Requests) UnmarshalJSON(data []byte) error { type GoogleCloudSecuritycenterV2Resource struct { // AwsMetadata: The AWS metadata associated with the finding. AwsMetadata *GoogleCloudSecuritycenterV2AwsMetadata `json:"awsMetadata,omitempty"` + // AzureMetadata: The Azure metadata associated with the finding. + AzureMetadata *GoogleCloudSecuritycenterV2AzureMetadata `json:"azureMetadata,omitempty"` // CloudProvider: Indicates which cloud provider the finding is from. // // Possible values: @@ -7361,6 +7632,51 @@ func (s *GoogleCloudSecuritycenterV2TicketInfo) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2ToxicCombination: Contains details about a group +// of security issues that, when the issues occur together, represent a greater +// risk than when the issues occur independently. A group of such issues is +// referred to as a toxic combination. +type GoogleCloudSecuritycenterV2ToxicCombination struct { + // AttackExposureScore: The Attack exposure score + // (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + AttackExposureScore float64 `json:"attackExposureScore,omitempty"` + // RelatedFindings: List of resource names of findings associated with this + // toxic combination. For example, organizations/123/sources/456/findings/789. + RelatedFindings []string `json:"relatedFindings,omitempty"` + // ForceSendFields is a list of field names (e.g. "AttackExposureScore") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttackExposureScore") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2ToxicCombination) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2ToxicCombination + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +func (s *GoogleCloudSecuritycenterV2ToxicCombination) UnmarshalJSON(data []byte) error { + type NoMethod GoogleCloudSecuritycenterV2ToxicCombination + var s1 struct { + AttackExposureScore gensupport.JSONFloat64 `json:"attackExposureScore"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.AttackExposureScore = float64(s1.AttackExposureScore) + return nil +} + // GoogleCloudSecuritycenterV2Vulnerability: Refers to common vulnerability // fields e.g. cve, cvss, cwe etc. type GoogleCloudSecuritycenterV2Vulnerability struct { @@ -7669,6 +7985,35 @@ func (s *GroupFindingsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GroupMembership: Contains details about groups of which this finding is a +// member. A group is a collection of findings that are related in some way. +type GroupMembership struct { + // GroupId: ID of the group. + GroupId string `json:"groupId,omitempty"` + // GroupType: Type of group. + // + // Possible values: + // "GROUP_TYPE_UNSPECIFIED" - Default value. + // "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination. + GroupType string `json:"groupType,omitempty"` + // ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GroupId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GroupMembership) MarshalJSON() ([]byte, error) { + type NoMethod GroupMembership + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GroupResult: Result containing the properties and count of a groupBy // request. type GroupResult struct { @@ -8619,7 +8964,10 @@ type MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1609 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this // finding, if any. @@ -8708,7 +9056,10 @@ type MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1609 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8". Version string `json:"version,omitempty"` @@ -9372,6 +9723,8 @@ func (s *Requests) UnmarshalJSON(data []byte) error { type Resource struct { // AwsMetadata: The AWS metadata associated with the finding. AwsMetadata *AwsMetadata `json:"awsMetadata,omitempty"` + // AzureMetadata: The Azure metadata associated with the finding. + AzureMetadata *AzureMetadata `json:"azureMetadata,omitempty"` // CloudProvider: Indicates which cloud provider the finding is from. // // Possible values: @@ -10268,6 +10621,51 @@ func (s *TicketInfo) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// ToxicCombination: Contains details about a group of security issues that, +// when the issues occur together, represent a greater risk than when the +// issues occur independently. A group of such issues is referred to as a toxic +// combination. +type ToxicCombination struct { + // AttackExposureScore: The Attack exposure score + // (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + AttackExposureScore float64 `json:"attackExposureScore,omitempty"` + // RelatedFindings: List of resource names of findings associated with this + // toxic combination. For example, organizations/123/sources/456/findings/789. + RelatedFindings []string `json:"relatedFindings,omitempty"` + // ForceSendFields is a list of field names (e.g. "AttackExposureScore") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttackExposureScore") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *ToxicCombination) MarshalJSON() ([]byte, error) { + type NoMethod ToxicCombination + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +func (s *ToxicCombination) UnmarshalJSON(data []byte) error { + type NoMethod ToxicCombination + var s1 struct { + AttackExposureScore gensupport.JSONFloat64 `json:"attackExposureScore"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.AttackExposureScore = float64(s1.AttackExposureScore) + return nil +} + // ValidateEventThreatDetectionCustomModuleRequest: Request to validate an // Event Threat Detection custom module. type ValidateEventThreatDetectionCustomModuleRequest struct { diff --git a/securitycenter/v1beta1/securitycenter-api.json b/securitycenter/v1beta1/securitycenter-api.json index 6f4f22b483d..7e3015d06b6 100644 --- a/securitycenter/v1beta1/securitycenter-api.json +++ b/securitycenter/v1beta1/securitycenter-api.json @@ -896,7 +896,7 @@ } } }, - "revision": "20240520", + "revision": "20240620", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -1261,6 +1261,69 @@ }, "type": "object" }, + "AzureManagementGroup": { + "description": "Represents an Azure management group.", + "id": "AzureManagementGroup", + "properties": { + "displayName": { + "description": "The display name of the Azure management group.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure management group, for example, \"20000000-0001-0000-0000-000000000000\".", + "type": "string" + } + }, + "type": "object" + }, + "AzureMetadata": { + "description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", + "id": "AzureMetadata", + "properties": { + "managementGroups": { + "description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", + "items": { + "$ref": "AzureManagementGroup" + }, + "type": "array" + }, + "resourceGroup": { + "$ref": "AzureResourceGroup", + "description": "The Azure resource group associated with the resource." + }, + "subscription": { + "$ref": "AzureSubscription", + "description": "The Azure subscription associated with the resource." + } + }, + "type": "object" + }, + "AzureResourceGroup": { + "description": "Represents an Azure resource group.", + "id": "AzureResourceGroup", + "properties": { + "name": { + "description": "The name of the Azure resource group. This is not a UUID.", + "type": "string" + } + }, + "type": "object" + }, + "AzureSubscription": { + "description": "Represents an Azure subscription.", + "id": "AzureSubscription", + "properties": { + "displayName": { + "description": "The display name of the Azure subscription.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure subscription, for example, \"291bba3f-e0a5-47bc-a099-3bdcb2a50a05\".", + "type": "string" + } + }, + "type": "object" + }, "BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "BackupDisasterRecovery", @@ -2144,7 +2207,8 @@ "MISCONFIGURATION", "OBSERVATION", "SCC_ERROR", - "POSTURE_VIOLATION" + "POSTURE_VIOLATION", + "TOXIC_COMBINATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -2153,10 +2217,18 @@ "Describes a potential weakness in cloud resource/asset configuration that increases risk.", "Describes a security observation that is for informational purposes.", "Describes an error that prevents some SCC functionality.", - "Describes a potential security risk due to a change in the security posture." + "Describes a potential security risk due to a change in the security posture.", + "Describes a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination." ], "type": "string" }, + "groupMemberships": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", + "items": { + "$ref": "GroupMembership" + }, + "type": "array" + }, "iamBindings": { "description": "Represents IAM bindings associated with the finding.", "items": { @@ -2311,6 +2383,10 @@ ], "type": "string" }, + "toxicCombination": { + "$ref": "ToxicCombination", + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." + }, "vulnerability": { "$ref": "Vulnerability", "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" @@ -2716,6 +2792,10 @@ "$ref": "AwsMetadata", "description": "The AWS metadata associated with the finding." }, + "azureMetadata": { + "$ref": "AzureMetadata", + "description": "The Azure metadata associated with the finding." + }, "cloudProvider": { "description": "Indicates which cloud provider the resource resides in.", "enum": [ @@ -3578,6 +3658,69 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AzureManagementGroup": { + "description": "Represents an Azure management group.", + "id": "GoogleCloudSecuritycenterV2AzureManagementGroup", + "properties": { + "displayName": { + "description": "The display name of the Azure management group.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure management group, for example, \"20000000-0001-0000-0000-000000000000\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureMetadata": { + "description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", + "id": "GoogleCloudSecuritycenterV2AzureMetadata", + "properties": { + "managementGroups": { + "description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2AzureManagementGroup" + }, + "type": "array" + }, + "resourceGroup": { + "$ref": "GoogleCloudSecuritycenterV2AzureResourceGroup", + "description": "The Azure resource group associated with the resource." + }, + "subscription": { + "$ref": "GoogleCloudSecuritycenterV2AzureSubscription", + "description": "The Azure subscription associated with the resource." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureResourceGroup": { + "description": "Represents an Azure resource group.", + "id": "GoogleCloudSecuritycenterV2AzureResourceGroup", + "properties": { + "name": { + "description": "The name of the Azure resource group. This is not a UUID.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureSubscription": { + "description": "Represents an Azure subscription.", + "id": "GoogleCloudSecuritycenterV2AzureSubscription", + "properties": { + "displayName": { + "description": "The display name of the Azure subscription.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure subscription, for example, \"291bba3f-e0a5-47bc-a099-3bdcb2a50a05\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", @@ -4488,7 +4631,8 @@ "MISCONFIGURATION", "OBSERVATION", "SCC_ERROR", - "POSTURE_VIOLATION" + "POSTURE_VIOLATION", + "TOXIC_COMBINATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -4497,10 +4641,18 @@ "Describes a potential weakness in cloud resource/asset configuration that increases risk.", "Describes a security observation that is for informational purposes.", "Describes an error that prevents some SCC functionality.", - "Describes a potential security risk due to a change in the security posture." + "Describes a potential security risk due to a change in the security posture.", + "Describes a combination of security issues that represent a more severe security problem when taken together." ], "type": "string" }, + "groupMemberships": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2GroupMembership" + }, + "type": "array" + }, "iamBindings": { "description": "Represents IAM bindings associated with the finding.", "items": { @@ -4656,6 +4808,10 @@ "readOnly": true, "type": "string" }, + "toxicCombination": { + "$ref": "GoogleCloudSecuritycenterV2ToxicCombination", + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." + }, "vulnerability": { "$ref": "GoogleCloudSecuritycenterV2Vulnerability", "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" @@ -4689,6 +4845,29 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2GroupMembership": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", + "id": "GoogleCloudSecuritycenterV2GroupMembership", + "properties": { + "groupId": { + "description": "ID of the group.", + "type": "string" + }, + "groupType": { + "description": "Type of group.", + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "GROUP_TYPE_TOXIC_COMBINATION" + ], + "enumDescriptions": [ + "Default value.", + "Group represents a toxic combination." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2IamBinding": { "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", "id": "GoogleCloudSecuritycenterV2IamBinding", @@ -5015,7 +5194,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -5077,7 +5259,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1613", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -5184,7 +5369,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -5246,7 +5434,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1613", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -5628,6 +5819,10 @@ "$ref": "GoogleCloudSecuritycenterV2AwsMetadata", "description": "The AWS metadata associated with the finding." }, + "azureMetadata": { + "$ref": "GoogleCloudSecuritycenterV2AzureMetadata", + "description": "The Azure metadata associated with the finding." + }, "cloudProvider": { "description": "Indicates which cloud provider the finding is from.", "enum": [ @@ -6076,6 +6271,25 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2ToxicCombination": { + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", + "id": "GoogleCloudSecuritycenterV2ToxicCombination", + "properties": { + "attackExposureScore": { + "description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", + "format": "double", + "type": "number" + }, + "relatedFindings": { + "description": "List of resource names of findings associated with this toxic combination. For example, organizations/123/sources/456/findings/789.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Vulnerability": { "description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", "id": "GoogleCloudSecuritycenterV2Vulnerability", @@ -6219,6 +6433,29 @@ }, "type": "object" }, + "GroupMembership": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", + "id": "GroupMembership", + "properties": { + "groupId": { + "description": "ID of the group.", + "type": "string" + }, + "groupType": { + "description": "Type of group.", + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "GROUP_TYPE_TOXIC_COMBINATION" + ], + "enumDescriptions": [ + "Default value.", + "Group represents a toxic combination." + ], + "type": "string" + } + }, + "type": "object" + }, "GroupResult": { "description": "Result containing the properties and count of a groupBy request.", "id": "GroupResult", @@ -6685,7 +6922,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -6747,7 +6987,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1609", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -6854,7 +7097,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -6916,7 +7162,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1609", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -7727,6 +7976,25 @@ }, "type": "object" }, + "ToxicCombination": { + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", + "id": "ToxicCombination", + "properties": { + "attackExposureScore": { + "description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", + "format": "double", + "type": "number" + }, + "relatedFindings": { + "description": "List of resource names of findings associated with this toxic combination. For example, organizations/123/sources/456/findings/789.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Vulnerability": { "description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", "id": "Vulnerability", diff --git a/securitycenter/v1beta1/securitycenter-gen.go b/securitycenter/v1beta1/securitycenter-gen.go index 81b0381a7e0..aa8b6fab547 100644 --- a/securitycenter/v1beta1/securitycenter-gen.go +++ b/securitycenter/v1beta1/securitycenter-gen.go @@ -745,6 +745,107 @@ func (s *AwsOrganizationalUnit) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// AzureManagementGroup: Represents an Azure management group. +type AzureManagementGroup struct { + // DisplayName: The display name of the Azure management group. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure management group, for example, + // "20000000-0001-0000-0000-000000000000". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureManagementGroup) MarshalJSON() ([]byte, error) { + type NoMethod AzureManagementGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureMetadata: Azure metadata associated with the resource, only applicable +// if the finding's cloud provider is Microsoft Azure. +type AzureMetadata struct { + // ManagementGroups: A list of Azure management groups associated with the + // resource, ordered from lowest level (closest to the subscription) to highest + // level. + ManagementGroups []*AzureManagementGroup `json:"managementGroups,omitempty"` + // ResourceGroup: The Azure resource group associated with the resource. + ResourceGroup *AzureResourceGroup `json:"resourceGroup,omitempty"` + // Subscription: The Azure subscription associated with the resource. + Subscription *AzureSubscription `json:"subscription,omitempty"` + // ForceSendFields is a list of field names (e.g. "ManagementGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ManagementGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureMetadata) MarshalJSON() ([]byte, error) { + type NoMethod AzureMetadata + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureResourceGroup: Represents an Azure resource group. +type AzureResourceGroup struct { + // Name: The name of the Azure resource group. This is not a UUID. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureResourceGroup) MarshalJSON() ([]byte, error) { + type NoMethod AzureResourceGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureSubscription: Represents an Azure subscription. +type AzureSubscription struct { + // DisplayName: The display name of the Azure subscription. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure subscription, for example, + // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureSubscription) MarshalJSON() ([]byte, error) { + type NoMethod AzureSubscription + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // BackupDisasterRecovery: Information related to Google Cloud Backup and DR // Service findings. type BackupDisasterRecovery struct { @@ -1839,7 +1940,14 @@ type Finding struct { // "SCC_ERROR" - Describes an error that prevents some SCC functionality. // "POSTURE_VIOLATION" - Describes a potential security risk due to a change // in the security posture. + // "TOXIC_COMBINATION" - Describes a group of security issues that, when the + // issues occur together, represent a greater risk than when the issues occur + // independently. A group of such issues is referred to as a toxic combination. FindingClass string `json:"findingClass,omitempty"` + // GroupMemberships: Contains details about groups of which this finding is a + // member. A group is a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + GroupMemberships []*GroupMembership `json:"groupMemberships,omitempty"` // IamBindings: Represents IAM bindings associated with the finding. IamBindings []*IamBinding `json:"iamBindings,omitempty"` // Indicator: Represents what's commonly known as an *indicator of compromise* @@ -1975,6 +2083,12 @@ type Finding struct { // "INACTIVE" - The finding has been fixed, triaged as a non-issue or // otherwise addressed and is no longer active. State string `json:"state,omitempty"` + // ToxicCombination: Contains details about a group of security issues that, + // when the issues occur together, represent a greater risk than when the + // issues occur independently. A group of such issues is referred to as a toxic + // combination. This field cannot be updated. Its value is ignored in all + // update requests. + ToxicCombination *ToxicCombination `json:"toxicCombination,omitempty"` // Vulnerability: Represents vulnerability-specific fields like CVE and CVSS // scores. CVE stands for Common Vulnerabilities and Exposures // (https://cve.mitre.org/about/) @@ -2530,6 +2644,8 @@ func (s *GoogleCloudSecuritycenterV1Property) MarshalJSON() ([]byte, error) { type GoogleCloudSecuritycenterV1Resource struct { // AwsMetadata: The AWS metadata associated with the finding. AwsMetadata *AwsMetadata `json:"awsMetadata,omitempty"` + // AzureMetadata: The Azure metadata associated with the finding. + AzureMetadata *AzureMetadata `json:"azureMetadata,omitempty"` // CloudProvider: Indicates which cloud provider the resource resides in. // // Possible values: @@ -3631,6 +3747,111 @@ func (s *GoogleCloudSecuritycenterV2AwsOrganizationalUnit) MarshalJSON() ([]byte return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2AzureManagementGroup: Represents an Azure +// management group. +type GoogleCloudSecuritycenterV2AzureManagementGroup struct { + // DisplayName: The display name of the Azure management group. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure management group, for example, + // "20000000-0001-0000-0000-000000000000". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureManagementGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureManagementGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureMetadata: Azure metadata associated with the +// resource, only applicable if the finding's cloud provider is Microsoft +// Azure. +type GoogleCloudSecuritycenterV2AzureMetadata struct { + // ManagementGroups: A list of Azure management groups associated with the + // resource, ordered from lowest level (closest to the subscription) to highest + // level. + ManagementGroups []*GoogleCloudSecuritycenterV2AzureManagementGroup `json:"managementGroups,omitempty"` + // ResourceGroup: The Azure resource group associated with the resource. + ResourceGroup *GoogleCloudSecuritycenterV2AzureResourceGroup `json:"resourceGroup,omitempty"` + // Subscription: The Azure subscription associated with the resource. + Subscription *GoogleCloudSecuritycenterV2AzureSubscription `json:"subscription,omitempty"` + // ForceSendFields is a list of field names (e.g. "ManagementGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ManagementGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureMetadata) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureMetadata + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureResourceGroup: Represents an Azure resource +// group. +type GoogleCloudSecuritycenterV2AzureResourceGroup struct { + // Name: The name of the Azure resource group. This is not a UUID. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureResourceGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureResourceGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureSubscription: Represents an Azure +// subscription. +type GoogleCloudSecuritycenterV2AzureSubscription struct { + // DisplayName: The display name of the Azure subscription. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure subscription, for example, + // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureSubscription) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureSubscription + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV2BackupDisasterRecovery: Information related to // Google Cloud Backup and DR Service findings. type GoogleCloudSecuritycenterV2BackupDisasterRecovery struct { @@ -4696,7 +4917,13 @@ type GoogleCloudSecuritycenterV2Finding struct { // "SCC_ERROR" - Describes an error that prevents some SCC functionality. // "POSTURE_VIOLATION" - Describes a potential security risk due to a change // in the security posture. + // "TOXIC_COMBINATION" - Describes a combination of security issues that + // represent a more severe security problem when taken together. FindingClass string `json:"findingClass,omitempty"` + // GroupMemberships: Contains details about groups of which this finding is a + // member. A group is a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + GroupMemberships []*GoogleCloudSecuritycenterV2GroupMembership `json:"groupMemberships,omitempty"` // IamBindings: Represents IAM bindings associated with the finding. IamBindings []*GoogleCloudSecuritycenterV2IamBinding `json:"iamBindings,omitempty"` // Indicator: Represents what's commonly known as an *indicator of compromise* @@ -4843,6 +5070,12 @@ type GoogleCloudSecuritycenterV2Finding struct { // "INACTIVE" - The finding has been fixed, triaged as a non-issue or // otherwise addressed and is no longer active. State string `json:"state,omitempty"` + // ToxicCombination: Contains details about a group of security issues that, + // when the issues occur together, represent a greater risk than when the + // issues occur independently. A group of such issues is referred to as a toxic + // combination. This field cannot be updated. Its value is ignored in all + // update requests. + ToxicCombination *GoogleCloudSecuritycenterV2ToxicCombination `json:"toxicCombination,omitempty"` // Vulnerability: Represents vulnerability-specific fields like CVE and CVSS // scores. CVE stands for Common Vulnerabilities and Exposures // (https://cve.mitre.org/about/) @@ -4914,6 +5147,36 @@ func (s *GoogleCloudSecuritycenterV2Geolocation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2GroupMembership: Contains details about groups of +// which this finding is a member. A group is a collection of findings that are +// related in some way. +type GoogleCloudSecuritycenterV2GroupMembership struct { + // GroupId: ID of the group. + GroupId string `json:"groupId,omitempty"` + // GroupType: Type of group. + // + // Possible values: + // "GROUP_TYPE_UNSPECIFIED" - Default value. + // "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination. + GroupType string `json:"groupType,omitempty"` + // ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GroupId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2GroupMembership) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2GroupMembership + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV2IamBinding: Represents a particular IAM binding, // which captures a member's role addition, removal, or state. type GoogleCloudSecuritycenterV2IamBinding struct { @@ -5262,7 +5525,10 @@ type GoogleCloudSecuritycenterV2MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1613 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this // finding, if any. @@ -5351,7 +5617,10 @@ type GoogleCloudSecuritycenterV2MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1613 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8". Version string `json:"version,omitempty"` @@ -5844,6 +6113,8 @@ func (s *GoogleCloudSecuritycenterV2Requests) UnmarshalJSON(data []byte) error { type GoogleCloudSecuritycenterV2Resource struct { // AwsMetadata: The AWS metadata associated with the finding. AwsMetadata *GoogleCloudSecuritycenterV2AwsMetadata `json:"awsMetadata,omitempty"` + // AzureMetadata: The Azure metadata associated with the finding. + AzureMetadata *GoogleCloudSecuritycenterV2AzureMetadata `json:"azureMetadata,omitempty"` // CloudProvider: Indicates which cloud provider the finding is from. // // Possible values: @@ -6372,6 +6643,51 @@ func (s *GoogleCloudSecuritycenterV2TicketInfo) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2ToxicCombination: Contains details about a group +// of security issues that, when the issues occur together, represent a greater +// risk than when the issues occur independently. A group of such issues is +// referred to as a toxic combination. +type GoogleCloudSecuritycenterV2ToxicCombination struct { + // AttackExposureScore: The Attack exposure score + // (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + AttackExposureScore float64 `json:"attackExposureScore,omitempty"` + // RelatedFindings: List of resource names of findings associated with this + // toxic combination. For example, organizations/123/sources/456/findings/789. + RelatedFindings []string `json:"relatedFindings,omitempty"` + // ForceSendFields is a list of field names (e.g. "AttackExposureScore") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttackExposureScore") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2ToxicCombination) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2ToxicCombination + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +func (s *GoogleCloudSecuritycenterV2ToxicCombination) UnmarshalJSON(data []byte) error { + type NoMethod GoogleCloudSecuritycenterV2ToxicCombination + var s1 struct { + AttackExposureScore gensupport.JSONFloat64 `json:"attackExposureScore"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.AttackExposureScore = float64(s1.AttackExposureScore) + return nil +} + // GoogleCloudSecuritycenterV2Vulnerability: Refers to common vulnerability // fields e.g. cve, cvss, cwe etc. type GoogleCloudSecuritycenterV2Vulnerability struct { @@ -6611,6 +6927,35 @@ func (s *GroupFindingsResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GroupMembership: Contains details about groups of which this finding is a +// member. A group is a collection of findings that are related in some way. +type GroupMembership struct { + // GroupId: ID of the group. + GroupId string `json:"groupId,omitempty"` + // GroupType: Type of group. + // + // Possible values: + // "GROUP_TYPE_UNSPECIFIED" - Default value. + // "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination. + GroupType string `json:"groupType,omitempty"` + // ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GroupId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GroupMembership) MarshalJSON() ([]byte, error) { + type NoMethod GroupMembership + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GroupResult: Result containing the properties and count of a groupBy // request. type GroupResult struct { @@ -7133,7 +7478,10 @@ type MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1609 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this // finding, if any. @@ -7222,7 +7570,10 @@ type MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1609 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8". Version string `json:"version,omitempty"` @@ -8362,6 +8713,51 @@ func (s *TicketInfo) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// ToxicCombination: Contains details about a group of security issues that, +// when the issues occur together, represent a greater risk than when the +// issues occur independently. A group of such issues is referred to as a toxic +// combination. +type ToxicCombination struct { + // AttackExposureScore: The Attack exposure score + // (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + AttackExposureScore float64 `json:"attackExposureScore,omitempty"` + // RelatedFindings: List of resource names of findings associated with this + // toxic combination. For example, organizations/123/sources/456/findings/789. + RelatedFindings []string `json:"relatedFindings,omitempty"` + // ForceSendFields is a list of field names (e.g. "AttackExposureScore") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttackExposureScore") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *ToxicCombination) MarshalJSON() ([]byte, error) { + type NoMethod ToxicCombination + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +func (s *ToxicCombination) UnmarshalJSON(data []byte) error { + type NoMethod ToxicCombination + var s1 struct { + AttackExposureScore gensupport.JSONFloat64 `json:"attackExposureScore"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.AttackExposureScore = float64(s1.AttackExposureScore) + return nil +} + // Vulnerability: Refers to common vulnerability fields e.g. cve, cvss, cwe // etc. type Vulnerability struct { diff --git a/securitycenter/v1beta2/securitycenter-api.json b/securitycenter/v1beta2/securitycenter-api.json index 5cc57f26b1e..aef303609d0 100644 --- a/securitycenter/v1beta2/securitycenter-api.json +++ b/securitycenter/v1beta2/securitycenter-api.json @@ -1906,7 +1906,7 @@ } } }, - "revision": "20240520", + "revision": "20240620", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -2159,6 +2159,69 @@ }, "type": "object" }, + "AzureManagementGroup": { + "description": "Represents an Azure management group.", + "id": "AzureManagementGroup", + "properties": { + "displayName": { + "description": "The display name of the Azure management group.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure management group, for example, \"20000000-0001-0000-0000-000000000000\".", + "type": "string" + } + }, + "type": "object" + }, + "AzureMetadata": { + "description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", + "id": "AzureMetadata", + "properties": { + "managementGroups": { + "description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", + "items": { + "$ref": "AzureManagementGroup" + }, + "type": "array" + }, + "resourceGroup": { + "$ref": "AzureResourceGroup", + "description": "The Azure resource group associated with the resource." + }, + "subscription": { + "$ref": "AzureSubscription", + "description": "The Azure subscription associated with the resource." + } + }, + "type": "object" + }, + "AzureResourceGroup": { + "description": "Represents an Azure resource group.", + "id": "AzureResourceGroup", + "properties": { + "name": { + "description": "The name of the Azure resource group. This is not a UUID.", + "type": "string" + } + }, + "type": "object" + }, + "AzureSubscription": { + "description": "Represents an Azure subscription.", + "id": "AzureSubscription", + "properties": { + "displayName": { + "description": "The display name of the Azure subscription.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure subscription, for example, \"291bba3f-e0a5-47bc-a099-3bdcb2a50a05\".", + "type": "string" + } + }, + "type": "object" + }, "BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "BackupDisasterRecovery", @@ -3161,7 +3224,8 @@ "MISCONFIGURATION", "OBSERVATION", "SCC_ERROR", - "POSTURE_VIOLATION" + "POSTURE_VIOLATION", + "TOXIC_COMBINATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -3170,10 +3234,18 @@ "Describes a potential weakness in cloud resource/asset configuration that increases risk.", "Describes a security observation that is for informational purposes.", "Describes an error that prevents some SCC functionality.", - "Describes a potential security risk due to a change in the security posture." + "Describes a potential security risk due to a change in the security posture.", + "Describes a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination." ], "type": "string" }, + "groupMemberships": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", + "items": { + "$ref": "GroupMembership" + }, + "type": "array" + }, "iamBindings": { "description": "Represents IAM bindings associated with the finding.", "items": { @@ -3328,6 +3400,10 @@ ], "type": "string" }, + "toxicCombination": { + "$ref": "ToxicCombination", + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." + }, "vulnerability": { "$ref": "Vulnerability", "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" @@ -3710,6 +3786,10 @@ "$ref": "AwsMetadata", "description": "The AWS metadata associated with the finding." }, + "azureMetadata": { + "$ref": "AzureMetadata", + "description": "The Azure metadata associated with the finding." + }, "cloudProvider": { "description": "Indicates which cloud provider the resource resides in.", "enum": [ @@ -4491,6 +4571,69 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AzureManagementGroup": { + "description": "Represents an Azure management group.", + "id": "GoogleCloudSecuritycenterV2AzureManagementGroup", + "properties": { + "displayName": { + "description": "The display name of the Azure management group.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure management group, for example, \"20000000-0001-0000-0000-000000000000\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureMetadata": { + "description": "Azure metadata associated with the resource, only applicable if the finding's cloud provider is Microsoft Azure.", + "id": "GoogleCloudSecuritycenterV2AzureMetadata", + "properties": { + "managementGroups": { + "description": "A list of Azure management groups associated with the resource, ordered from lowest level (closest to the subscription) to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2AzureManagementGroup" + }, + "type": "array" + }, + "resourceGroup": { + "$ref": "GoogleCloudSecuritycenterV2AzureResourceGroup", + "description": "The Azure resource group associated with the resource." + }, + "subscription": { + "$ref": "GoogleCloudSecuritycenterV2AzureSubscription", + "description": "The Azure subscription associated with the resource." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureResourceGroup": { + "description": "Represents an Azure resource group.", + "id": "GoogleCloudSecuritycenterV2AzureResourceGroup", + "properties": { + "name": { + "description": "The name of the Azure resource group. This is not a UUID.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AzureSubscription": { + "description": "Represents an Azure subscription.", + "id": "GoogleCloudSecuritycenterV2AzureSubscription", + "properties": { + "displayName": { + "description": "The display name of the Azure subscription.", + "type": "string" + }, + "id": { + "description": "The UUID of the Azure subscription, for example, \"291bba3f-e0a5-47bc-a099-3bdcb2a50a05\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", @@ -5401,7 +5544,8 @@ "MISCONFIGURATION", "OBSERVATION", "SCC_ERROR", - "POSTURE_VIOLATION" + "POSTURE_VIOLATION", + "TOXIC_COMBINATION" ], "enumDescriptions": [ "Unspecified finding class.", @@ -5410,10 +5554,18 @@ "Describes a potential weakness in cloud resource/asset configuration that increases risk.", "Describes a security observation that is for informational purposes.", "Describes an error that prevents some SCC functionality.", - "Describes a potential security risk due to a change in the security posture." + "Describes a potential security risk due to a change in the security posture.", + "Describes a combination of security issues that represent a more severe security problem when taken together." ], "type": "string" }, + "groupMemberships": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way. This field cannot be updated. Its value is ignored in all update requests.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2GroupMembership" + }, + "type": "array" + }, "iamBindings": { "description": "Represents IAM bindings associated with the finding.", "items": { @@ -5569,6 +5721,10 @@ "readOnly": true, "type": "string" }, + "toxicCombination": { + "$ref": "GoogleCloudSecuritycenterV2ToxicCombination", + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination. This field cannot be updated. Its value is ignored in all update requests." + }, "vulnerability": { "$ref": "GoogleCloudSecuritycenterV2Vulnerability", "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" @@ -5602,6 +5758,29 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2GroupMembership": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", + "id": "GoogleCloudSecuritycenterV2GroupMembership", + "properties": { + "groupId": { + "description": "ID of the group.", + "type": "string" + }, + "groupType": { + "description": "Type of group.", + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "GROUP_TYPE_TOXIC_COMBINATION" + ], + "enumDescriptions": [ + "Default value.", + "Group represents a toxic combination." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2IamBinding": { "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", "id": "GoogleCloudSecuritycenterV2IamBinding", @@ -5928,7 +6107,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -5990,7 +6172,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1613", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -6097,7 +6282,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -6159,7 +6347,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1613", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -6541,6 +6732,10 @@ "$ref": "GoogleCloudSecuritycenterV2AwsMetadata", "description": "The AWS metadata associated with the finding." }, + "azureMetadata": { + "$ref": "GoogleCloudSecuritycenterV2AzureMetadata", + "description": "The Azure metadata associated with the finding." + }, "cloudProvider": { "description": "Indicates which cloud provider the finding is from.", "enum": [ @@ -6989,6 +7184,25 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2ToxicCombination": { + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", + "id": "GoogleCloudSecuritycenterV2ToxicCombination", + "properties": { + "attackExposureScore": { + "description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", + "format": "double", + "type": "number" + }, + "relatedFindings": { + "description": "List of resource names of findings associated with this toxic combination. For example, organizations/123/sources/456/findings/789.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Vulnerability": { "description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", "id": "GoogleCloudSecuritycenterV2Vulnerability", @@ -7023,6 +7237,29 @@ }, "type": "object" }, + "GroupMembership": { + "description": "Contains details about groups of which this finding is a member. A group is a collection of findings that are related in some way.", + "id": "GroupMembership", + "properties": { + "groupId": { + "description": "ID of the group.", + "type": "string" + }, + "groupType": { + "description": "Type of group.", + "enum": [ + "GROUP_TYPE_UNSPECIFIED", + "GROUP_TYPE_TOXIC_COMBINATION" + ], + "enumDescriptions": [ + "Default value.", + "Group represents a toxic combination." + ], + "type": "string" + } + }, + "type": "object" + }, "IamBinding": { "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", "id": "IamBinding", @@ -7349,7 +7586,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -7411,7 +7651,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1609", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -7518,7 +7761,10 @@ "OBTAIN_CAPABILITIES", "ACTIVE_SCANNING", "SCANNING_IP_BLOCKS", - "CONTAINER_AND_RESOURCE_DISCOVERY" + "CONTAINER_ADMINISTRATION_COMMAND", + "ESCAPE_TO_HOST", + "CONTAINER_AND_RESOURCE_DISCOVERY", + "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" ], "enumDescriptions": [ "Unspecified value.", @@ -7580,7 +7826,10 @@ "T1588", "T1595", "T1595.001", - "T1613" + "T1609", + "T1611", + "T1613", + "T1649" ], "type": "string" }, @@ -8298,6 +8547,25 @@ }, "type": "object" }, + "ToxicCombination": { + "description": "Contains details about a group of security issues that, when the issues occur together, represent a greater risk than when the issues occur independently. A group of such issues is referred to as a toxic combination.", + "id": "ToxicCombination", + "properties": { + "attackExposureScore": { + "description": "The [Attack exposure score](https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. The score is a measure of how much this toxic combination exposes one or more high-value resources to potential attack.", + "format": "double", + "type": "number" + }, + "relatedFindings": { + "description": "List of resource names of findings associated with this toxic combination. For example, organizations/123/sources/456/findings/789.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "VirtualMachineThreatDetectionSettings": { "description": "Resource capturing the settings for the Virtual Machine Threat Detection service.", "id": "VirtualMachineThreatDetectionSettings", diff --git a/securitycenter/v1beta2/securitycenter-gen.go b/securitycenter/v1beta2/securitycenter-gen.go index f59d286f117..1aa28f514e9 100644 --- a/securitycenter/v1beta2/securitycenter-gen.go +++ b/securitycenter/v1beta2/securitycenter-gen.go @@ -819,6 +819,107 @@ func (s *AwsOrganizationalUnit) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// AzureManagementGroup: Represents an Azure management group. +type AzureManagementGroup struct { + // DisplayName: The display name of the Azure management group. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure management group, for example, + // "20000000-0001-0000-0000-000000000000". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureManagementGroup) MarshalJSON() ([]byte, error) { + type NoMethod AzureManagementGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureMetadata: Azure metadata associated with the resource, only applicable +// if the finding's cloud provider is Microsoft Azure. +type AzureMetadata struct { + // ManagementGroups: A list of Azure management groups associated with the + // resource, ordered from lowest level (closest to the subscription) to highest + // level. + ManagementGroups []*AzureManagementGroup `json:"managementGroups,omitempty"` + // ResourceGroup: The Azure resource group associated with the resource. + ResourceGroup *AzureResourceGroup `json:"resourceGroup,omitempty"` + // Subscription: The Azure subscription associated with the resource. + Subscription *AzureSubscription `json:"subscription,omitempty"` + // ForceSendFields is a list of field names (e.g. "ManagementGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ManagementGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureMetadata) MarshalJSON() ([]byte, error) { + type NoMethod AzureMetadata + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureResourceGroup: Represents an Azure resource group. +type AzureResourceGroup struct { + // Name: The name of the Azure resource group. This is not a UUID. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureResourceGroup) MarshalJSON() ([]byte, error) { + type NoMethod AzureResourceGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// AzureSubscription: Represents an Azure subscription. +type AzureSubscription struct { + // DisplayName: The display name of the Azure subscription. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure subscription, for example, + // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *AzureSubscription) MarshalJSON() ([]byte, error) { + type NoMethod AzureSubscription + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // BackupDisasterRecovery: Information related to Google Cloud Backup and DR // Service findings. type BackupDisasterRecovery struct { @@ -1963,7 +2064,14 @@ type Finding struct { // "SCC_ERROR" - Describes an error that prevents some SCC functionality. // "POSTURE_VIOLATION" - Describes a potential security risk due to a change // in the security posture. + // "TOXIC_COMBINATION" - Describes a group of security issues that, when the + // issues occur together, represent a greater risk than when the issues occur + // independently. A group of such issues is referred to as a toxic combination. FindingClass string `json:"findingClass,omitempty"` + // GroupMemberships: Contains details about groups of which this finding is a + // member. A group is a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + GroupMemberships []*GroupMembership `json:"groupMemberships,omitempty"` // IamBindings: Represents IAM bindings associated with the finding. IamBindings []*IamBinding `json:"iamBindings,omitempty"` // Indicator: Represents what's commonly known as an *indicator of compromise* @@ -2099,6 +2207,12 @@ type Finding struct { // "INACTIVE" - The finding has been fixed, triaged as a non-issue or // otherwise addressed and is no longer active. State string `json:"state,omitempty"` + // ToxicCombination: Contains details about a group of security issues that, + // when the issues occur together, represent a greater risk than when the + // issues occur independently. A group of such issues is referred to as a toxic + // combination. This field cannot be updated. Its value is ignored in all + // update requests. + ToxicCombination *ToxicCombination `json:"toxicCombination,omitempty"` // Vulnerability: Represents vulnerability-specific fields like CVE and CVSS // scores. CVE stands for Common Vulnerabilities and Exposures // (https://cve.mitre.org/about/) @@ -2599,6 +2713,8 @@ func (s *GoogleCloudSecuritycenterV1Property) MarshalJSON() ([]byte, error) { type GoogleCloudSecuritycenterV1Resource struct { // AwsMetadata: The AWS metadata associated with the finding. AwsMetadata *AwsMetadata `json:"awsMetadata,omitempty"` + // AzureMetadata: The Azure metadata associated with the finding. + AzureMetadata *AzureMetadata `json:"azureMetadata,omitempty"` // CloudProvider: Indicates which cloud provider the resource resides in. // // Possible values: @@ -3582,6 +3698,111 @@ func (s *GoogleCloudSecuritycenterV2AwsOrganizationalUnit) MarshalJSON() ([]byte return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2AzureManagementGroup: Represents an Azure +// management group. +type GoogleCloudSecuritycenterV2AzureManagementGroup struct { + // DisplayName: The display name of the Azure management group. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure management group, for example, + // "20000000-0001-0000-0000-000000000000". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureManagementGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureManagementGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureMetadata: Azure metadata associated with the +// resource, only applicable if the finding's cloud provider is Microsoft +// Azure. +type GoogleCloudSecuritycenterV2AzureMetadata struct { + // ManagementGroups: A list of Azure management groups associated with the + // resource, ordered from lowest level (closest to the subscription) to highest + // level. + ManagementGroups []*GoogleCloudSecuritycenterV2AzureManagementGroup `json:"managementGroups,omitempty"` + // ResourceGroup: The Azure resource group associated with the resource. + ResourceGroup *GoogleCloudSecuritycenterV2AzureResourceGroup `json:"resourceGroup,omitempty"` + // Subscription: The Azure subscription associated with the resource. + Subscription *GoogleCloudSecuritycenterV2AzureSubscription `json:"subscription,omitempty"` + // ForceSendFields is a list of field names (e.g. "ManagementGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ManagementGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureMetadata) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureMetadata + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureResourceGroup: Represents an Azure resource +// group. +type GoogleCloudSecuritycenterV2AzureResourceGroup struct { + // Name: The name of the Azure resource group. This is not a UUID. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureResourceGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureResourceGroup + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +// GoogleCloudSecuritycenterV2AzureSubscription: Represents an Azure +// subscription. +type GoogleCloudSecuritycenterV2AzureSubscription struct { + // DisplayName: The display name of the Azure subscription. + DisplayName string `json:"displayName,omitempty"` + // Id: The UUID of the Azure subscription, for example, + // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + Id string `json:"id,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2AzureSubscription) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2AzureSubscription + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV2BackupDisasterRecovery: Information related to // Google Cloud Backup and DR Service findings. type GoogleCloudSecuritycenterV2BackupDisasterRecovery struct { @@ -4647,7 +4868,13 @@ type GoogleCloudSecuritycenterV2Finding struct { // "SCC_ERROR" - Describes an error that prevents some SCC functionality. // "POSTURE_VIOLATION" - Describes a potential security risk due to a change // in the security posture. + // "TOXIC_COMBINATION" - Describes a combination of security issues that + // represent a more severe security problem when taken together. FindingClass string `json:"findingClass,omitempty"` + // GroupMemberships: Contains details about groups of which this finding is a + // member. A group is a collection of findings that are related in some way. + // This field cannot be updated. Its value is ignored in all update requests. + GroupMemberships []*GoogleCloudSecuritycenterV2GroupMembership `json:"groupMemberships,omitempty"` // IamBindings: Represents IAM bindings associated with the finding. IamBindings []*GoogleCloudSecuritycenterV2IamBinding `json:"iamBindings,omitempty"` // Indicator: Represents what's commonly known as an *indicator of compromise* @@ -4794,6 +5021,12 @@ type GoogleCloudSecuritycenterV2Finding struct { // "INACTIVE" - The finding has been fixed, triaged as a non-issue or // otherwise addressed and is no longer active. State string `json:"state,omitempty"` + // ToxicCombination: Contains details about a group of security issues that, + // when the issues occur together, represent a greater risk than when the + // issues occur independently. A group of such issues is referred to as a toxic + // combination. This field cannot be updated. Its value is ignored in all + // update requests. + ToxicCombination *GoogleCloudSecuritycenterV2ToxicCombination `json:"toxicCombination,omitempty"` // Vulnerability: Represents vulnerability-specific fields like CVE and CVSS // scores. CVE stands for Common Vulnerabilities and Exposures // (https://cve.mitre.org/about/) @@ -4865,6 +5098,36 @@ func (s *GoogleCloudSecuritycenterV2Geolocation) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2GroupMembership: Contains details about groups of +// which this finding is a member. A group is a collection of findings that are +// related in some way. +type GoogleCloudSecuritycenterV2GroupMembership struct { + // GroupId: ID of the group. + GroupId string `json:"groupId,omitempty"` + // GroupType: Type of group. + // + // Possible values: + // "GROUP_TYPE_UNSPECIFIED" - Default value. + // "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination. + GroupType string `json:"groupType,omitempty"` + // ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GroupId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2GroupMembership) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2GroupMembership + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // GoogleCloudSecuritycenterV2IamBinding: Represents a particular IAM binding, // which captures a member's role addition, removal, or state. type GoogleCloudSecuritycenterV2IamBinding struct { @@ -5213,7 +5476,10 @@ type GoogleCloudSecuritycenterV2MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1613 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this // finding, if any. @@ -5302,7 +5568,10 @@ type GoogleCloudSecuritycenterV2MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1613 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8". Version string `json:"version,omitempty"` @@ -5795,6 +6064,8 @@ func (s *GoogleCloudSecuritycenterV2Requests) UnmarshalJSON(data []byte) error { type GoogleCloudSecuritycenterV2Resource struct { // AwsMetadata: The AWS metadata associated with the finding. AwsMetadata *GoogleCloudSecuritycenterV2AwsMetadata `json:"awsMetadata,omitempty"` + // AzureMetadata: The Azure metadata associated with the finding. + AzureMetadata *GoogleCloudSecuritycenterV2AzureMetadata `json:"azureMetadata,omitempty"` // CloudProvider: Indicates which cloud provider the finding is from. // // Possible values: @@ -6323,6 +6594,51 @@ func (s *GoogleCloudSecuritycenterV2TicketInfo) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GoogleCloudSecuritycenterV2ToxicCombination: Contains details about a group +// of security issues that, when the issues occur together, represent a greater +// risk than when the issues occur independently. A group of such issues is +// referred to as a toxic combination. +type GoogleCloudSecuritycenterV2ToxicCombination struct { + // AttackExposureScore: The Attack exposure score + // (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + AttackExposureScore float64 `json:"attackExposureScore,omitempty"` + // RelatedFindings: List of resource names of findings associated with this + // toxic combination. For example, organizations/123/sources/456/findings/789. + RelatedFindings []string `json:"relatedFindings,omitempty"` + // ForceSendFields is a list of field names (e.g. "AttackExposureScore") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttackExposureScore") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudSecuritycenterV2ToxicCombination) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudSecuritycenterV2ToxicCombination + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +func (s *GoogleCloudSecuritycenterV2ToxicCombination) UnmarshalJSON(data []byte) error { + type NoMethod GoogleCloudSecuritycenterV2ToxicCombination + var s1 struct { + AttackExposureScore gensupport.JSONFloat64 `json:"attackExposureScore"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.AttackExposureScore = float64(s1.AttackExposureScore) + return nil +} + // GoogleCloudSecuritycenterV2Vulnerability: Refers to common vulnerability // fields e.g. cve, cvss, cwe etc. type GoogleCloudSecuritycenterV2Vulnerability struct { @@ -6376,6 +6692,35 @@ func (s *GoogleCloudSecuritycenterV2YaraRuleSignature) MarshalJSON() ([]byte, er return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// GroupMembership: Contains details about groups of which this finding is a +// member. A group is a collection of findings that are related in some way. +type GroupMembership struct { + // GroupId: ID of the group. + GroupId string `json:"groupId,omitempty"` + // GroupType: Type of group. + // + // Possible values: + // "GROUP_TYPE_UNSPECIFIED" - Default value. + // "GROUP_TYPE_TOXIC_COMBINATION" - Group represents a toxic combination. + GroupType string `json:"groupType,omitempty"` + // ForceSendFields is a list of field names (e.g. "GroupId") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GroupId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *GroupMembership) MarshalJSON() ([]byte, error) { + type NoMethod GroupMembership + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // IamBinding: Represents a particular IAM binding, which captures a member's // role addition, removal, or state. type IamBinding struct { @@ -6722,7 +7067,10 @@ type MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1609 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 AdditionalTechniques []string `json:"additionalTechniques,omitempty"` // PrimaryTactic: The MITRE ATT&CK tactic most closely represented by this // finding, if any. @@ -6811,7 +7159,10 @@ type MitreAttack struct { // "OBTAIN_CAPABILITIES" - T1588 // "ACTIVE_SCANNING" - T1595 // "SCANNING_IP_BLOCKS" - T1595.001 + // "CONTAINER_ADMINISTRATION_COMMAND" - T1609 + // "ESCAPE_TO_HOST" - T1611 // "CONTAINER_AND_RESOURCE_DISCOVERY" - T1613 + // "STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES" - T1649 PrimaryTechniques []string `json:"primaryTechniques,omitempty"` // Version: The MITRE ATT&CK version referenced by the above fields. E.g. "8". Version string `json:"version,omitempty"` @@ -7719,6 +8070,51 @@ func (s *TicketInfo) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// ToxicCombination: Contains details about a group of security issues that, +// when the issues occur together, represent a greater risk than when the +// issues occur independently. A group of such issues is referred to as a toxic +// combination. +type ToxicCombination struct { + // AttackExposureScore: The Attack exposure score + // (https://cloud.google.com/security-command-center/docs/attack-exposure-learn#attack_exposure_scores) + // of this toxic combination. The score is a measure of how much this toxic + // combination exposes one or more high-value resources to potential attack. + AttackExposureScore float64 `json:"attackExposureScore,omitempty"` + // RelatedFindings: List of resource names of findings associated with this + // toxic combination. For example, organizations/123/sources/456/findings/789. + RelatedFindings []string `json:"relatedFindings,omitempty"` + // ForceSendFields is a list of field names (e.g. "AttackExposureScore") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttackExposureScore") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *ToxicCombination) MarshalJSON() ([]byte, error) { + type NoMethod ToxicCombination + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + +func (s *ToxicCombination) UnmarshalJSON(data []byte) error { + type NoMethod ToxicCombination + var s1 struct { + AttackExposureScore gensupport.JSONFloat64 `json:"attackExposureScore"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.AttackExposureScore = float64(s1.AttackExposureScore) + return nil +} + // VirtualMachineThreatDetectionSettings: Resource capturing the settings for // the Virtual Machine Threat Detection service. type VirtualMachineThreatDetectionSettings struct { diff --git a/vmmigration/v1/vmmigration-api.json b/vmmigration/v1/vmmigration-api.json index 8beac4f6c6d..fa7cc65e465 100644 --- a/vmmigration/v1/vmmigration-api.json +++ b/vmmigration/v1/vmmigration-api.json @@ -2220,7 +2220,7 @@ } } }, - "revision": "20240530", + "revision": "20240613", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { "AccessKeyCredentials": { @@ -2401,6 +2401,11 @@ "description": "User specified tags to add to every M2VM generated resource in AWS. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m2vm`.", "type": "object" }, + "networkInsights": { + "$ref": "NetworkInsights", + "description": "Output only. Information about the network coniguration of the source. Only gatherred upon request.", + "readOnly": true + }, "publicIp": { "description": "Output only. The source's public IP. All communication initiated by this source will originate from this IP.", "readOnly": true, @@ -4835,6 +4840,23 @@ }, "type": "object" }, + "NetworkInsights": { + "description": "Information about the network coniguration of the source.", + "id": "NetworkInsights", + "properties": { + "sourceNetworkConfig": { + "description": "Output only. The gathered network configuration of the source. Presented in json format.", + "readOnly": true, + "type": "string" + }, + "sourceNetworkTerraform": { + "description": "Output only. The gathered network configuration of the source. Presented in terraform format.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "NetworkInterface": { "description": "NetworkInterface represents a NIC of a VM.", "id": "NetworkInterface", diff --git a/vmmigration/v1/vmmigration-gen.go b/vmmigration/v1/vmmigration-gen.go index 0fa5f7dd780..b0d94178898 100644 --- a/vmmigration/v1/vmmigration-gen.go +++ b/vmmigration/v1/vmmigration-gen.go @@ -533,6 +533,9 @@ type AwsSourceDetails struct { // tags that are set as part of the migration process. The tags must not begin // with the reserved prefix `m2vm`. MigrationResourcesUserTags map[string]string `json:"migrationResourcesUserTags,omitempty"` + // NetworkInsights: Output only. Information about the network coniguration of + // the source. Only gatherred upon request. + NetworkInsights *NetworkInsights `json:"networkInsights,omitempty"` // PublicIp: Output only. The source's public IP. All communication initiated // by this source will originate from this IP. PublicIp string `json:"publicIp,omitempty"` @@ -2789,6 +2792,32 @@ func (s *MigrationWarning) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// NetworkInsights: Information about the network coniguration of the source. +type NetworkInsights struct { + // SourceNetworkConfig: Output only. The gathered network configuration of the + // source. Presented in json format. + SourceNetworkConfig string `json:"sourceNetworkConfig,omitempty"` + // SourceNetworkTerraform: Output only. The gathered network configuration of + // the source. Presented in terraform format. + SourceNetworkTerraform string `json:"sourceNetworkTerraform,omitempty"` + // ForceSendFields is a list of field names (e.g. "SourceNetworkConfig") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SourceNetworkConfig") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *NetworkInsights) MarshalJSON() ([]byte, error) { + type NoMethod NetworkInsights + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // NetworkInterface: NetworkInterface represents a NIC of a VM. type NetworkInterface struct { // ExternalIp: Optional. The external IP to define in the NIC. diff --git a/vmmigration/v1alpha1/vmmigration-api.json b/vmmigration/v1alpha1/vmmigration-api.json index aa79ecf8204..ecc11a46c29 100644 --- a/vmmigration/v1alpha1/vmmigration-api.json +++ b/vmmigration/v1alpha1/vmmigration-api.json @@ -2220,7 +2220,7 @@ } } }, - "revision": "20240530", + "revision": "20240613", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { "AccessKeyCredentials": { @@ -2401,6 +2401,11 @@ "description": "User specified tags to add to every M2VM generated resource in AWS. These tags will be set in addition to the default tags that are set as part of the migration process. The tags must not begin with the reserved prefix `m2vm`.", "type": "object" }, + "networkInsights": { + "$ref": "NetworkInsights", + "description": "Output only. Information about the network coniguration of the source. Only gatherred upon request.", + "readOnly": true + }, "publicIp": { "description": "Output only. The source's public IP. All communication initiated by this source will originate from this IP.", "readOnly": true, @@ -4880,6 +4885,23 @@ }, "type": "object" }, + "NetworkInsights": { + "description": "Information about the network coniguration of the source.", + "id": "NetworkInsights", + "properties": { + "sourceNetworkConfig": { + "description": "Output only. The gathered network configuration of the source. Presented in json format.", + "readOnly": true, + "type": "string" + }, + "sourceNetworkTerraform": { + "description": "Output only. The gathered network configuration of the source. Presented in terraform format.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "NetworkInterface": { "description": "NetworkInterface represents a NIC of a VM.", "id": "NetworkInterface", diff --git a/vmmigration/v1alpha1/vmmigration-gen.go b/vmmigration/v1alpha1/vmmigration-gen.go index eadc5872838..15f047576f9 100644 --- a/vmmigration/v1alpha1/vmmigration-gen.go +++ b/vmmigration/v1alpha1/vmmigration-gen.go @@ -533,6 +533,9 @@ type AwsSourceDetails struct { // tags that are set as part of the migration process. The tags must not begin // with the reserved prefix `m2vm`. MigrationResourcesUserTags map[string]string `json:"migrationResourcesUserTags,omitempty"` + // NetworkInsights: Output only. Information about the network coniguration of + // the source. Only gatherred upon request. + NetworkInsights *NetworkInsights `json:"networkInsights,omitempty"` // PublicIp: Output only. The source's public IP. All communication initiated // by this source will originate from this IP. PublicIp string `json:"publicIp,omitempty"` @@ -2812,6 +2815,32 @@ func (s *MigrationWarning) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } +// NetworkInsights: Information about the network coniguration of the source. +type NetworkInsights struct { + // SourceNetworkConfig: Output only. The gathered network configuration of the + // source. Presented in json format. + SourceNetworkConfig string `json:"sourceNetworkConfig,omitempty"` + // SourceNetworkTerraform: Output only. The gathered network configuration of + // the source. Presented in terraform format. + SourceNetworkTerraform string `json:"sourceNetworkTerraform,omitempty"` + // ForceSendFields is a list of field names (e.g. "SourceNetworkConfig") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SourceNetworkConfig") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s *NetworkInsights) MarshalJSON() ([]byte, error) { + type NoMethod NetworkInsights + return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +} + // NetworkInterface: NetworkInterface represents a NIC of a VM. type NetworkInterface struct { // ExternalIp: Optional. The external IP to define in the NIC.