Enable asset discovery
Stay organized with collections
Save and categorize content based on your preferences.
Demonstrates how to enable or disable asset discovery
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Enable asset discovery\n\nDemonstrates how to enable or disable asset discovery\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Configuring asset discovery using the Security Command Center API](/security-command-center/docs/how-to-api-configure-asset-discovery)\n\nCode sample\n-----------\n\n### Go\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import (\n \t\"context\"\n \t\"fmt\"\n \t\"io\"\n\n \tsecuritycenter \"cloud.google.com/go/securitycenter/apiv1\"\n \t\"cloud.google.com/go/securitycenter/apiv1/securitycenterpb\"\n \t\"google.golang.org/genproto/protobuf/field_mask\"\n )\n\n // Turns on asset discovery for orgID and prints out updated settings to w.\n // settings. orgID is the numeric Organization ID.\n func enableAssetDiscovery(w io.Writer, orgID string) error {\n \t// orgID := \"12321311\"\n \t// Instantiate a context and a security service client to make API calls.\n \tctx := context.Background()\n \tclient, err := securitycenter.https://cloud.google.com/go/docs/reference/cloud.google.com/go/securitycenter/latest/apiv1.html#cloud_google_com_go_securitycenter_apiv1_Client_NewClient(ctx)\n \tif err != nil {\n \t\treturn fmt.Errorf(\"securitycenter.NewClient: %w\", err)\n \t}\n \tdefer client.https://cloud.google.com/go/docs/reference/cloud.google.com/go/securitycenter/latest/apiv1.html#cloud_google_com_go_securitycenter_apiv1_Client_Close() // Closing the client safely cleans up background resources.\n\n \treq := &securitycenterpb.UpdateOrganizationSettingsRequest{\n \t\tOrganizationSettings: &securitycenterpb.OrganizationSettings{\n \t\t\tName: fmt.Sprintf(\"organizations/%s/organizationSettings\", orgID),\n \t\t\tEnableAssetDiscovery: true,\n \t\t},\n \t\t// Only update the asset discovery setting.\n \t\tUpdateMask: &field_mask.FieldMask{\n \t\t\tPaths: []string{\"enable_asset_discovery\"},\n \t\t},\n \t}\n \tsettings, err := client.UpdateOrganizationSettings(ctx, req)\n \tif err != nil {\n \t\treturn fmt.Errorf(\"UpdateOrganizationSettings: %w\", err)\n \t}\n \tfmt.Fprintf(w, \"Updated Settings for: %s\\n\", settings.Name)\n \tfmt.Fprintf(w, \"Asset discovery on? %v\\n\", settings.EnableAssetDiscovery)\n \treturn nil\n }\n\n### Java\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n static OrganizationSettings updateOrganizationSettings(OrganizationName organizationName) {\n try (SecurityCenterClient client = SecurityCenterClient.create()) {\n // Start setting up a request to update OrganizationSettings for.\n // OrganizationName organizationName = OrganizationName.of(/*organizationId=*/\"123234324\");\n OrganizationSettings organizationSettings =\n OrganizationSettings.newBuilder()\n .setName(organizationName.toString() + \"/organizationSettings\")\n .setEnableAssetDiscovery(true)\n .build();\n FieldMask updateMask = FieldMask.newBuilder().addPaths(\"enable_asset_discovery\").build();\n\n UpdateOrganizationSettingsRequest.Builder request =\n UpdateOrganizationSettingsRequest.newBuilder()\n .setOrganizationSettings(organizationSettings)\n .setUpdateMask(updateMask);\n\n // Call the API.\n OrganizationSettings response = client.updateOrganizationSettings(request.build());\n\n System.out.println(\"Organization Settings have been updated:\");\n System.out.println(response);\n return response;\n } catch (IOException e) {\n throw new RuntimeException(\"Couldn't create client.\", e);\n }\n }\n\n### Node.js\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n // Imports the Google Cloud client library.\n const {SecurityCenterClient} = require('https://cloud.google.com/nodejs/docs/reference/security-center/latest/overview.html');\n\n // Creates a new client.\n const client = new https://cloud.google.com/nodejs/docs/reference/security-center/latest/overview.html();\n\n async function updateOrgSettings() {\n // organizationId is the numeric ID of the organization.\n /*\n * TODO(developer): Uncomment the following lines\n */\n // const organizationId = \"111122222444\";\n const orgName = client.organizationPath(organizationId);\n const [newSettings] = await client.updateOrganizationSettings({\n organizationSettings: {\n name: `${orgName}/organizationSettings`,\n enableAssetDiscovery: true,\n },\n // Only update the enableAssetDiscovery field.\n updateMask: {paths: ['enable_asset_discovery']},\n });\n\n console.log('New settings: %j', newSettings);\n }\n updateOrgSettings();\n\n### Python\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n from google.cloud import securitycenter\n from google.protobuf import field_mask_pb2\n\n # Create the client\n client = securitycenter.SecurityCenterClient()\n # organization_id is numeric ID for the organization. e.g.\n # organization_id = \"111112223333\"\n org_settings_name = \"organizations/{org_id}/organizationSettings\".format(\n org_id=organization_id\n )\n # Only update the enable_asset_discovery_value (leave others untouched).\n field_mask = field_mask_pb2.FieldMask(paths=[\"enable_asset_discovery\"])\n # Call the service.\n updated = client.https://cloud.google.com/python/docs/reference/securitycenter/latest/google.cloud.securitycenter_v1.services.security_center.SecurityCenterClient.html#google_cloud_securitycenter_v1_services_security_center_SecurityCenterClient_update_organization_settings(\n request={\n \"organization_settings\": {\n \"name\": org_settings_name,\n \"enable_asset_discovery\": True,\n },\n \"update_mask\": field_mask,\n }\n )\n print(f\"Asset Discovery Enabled? {updated.enable_asset_discovery}\")\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=securitycenter)."]]