Managing contacts for notifications

Many Google Cloud offerings, such as Cloud Billing, send out notifications to share important information with Google Cloud users. By default, these notifications are sent to members with certain Identity and Access Management (IAM) roles. With Essential Contacts, you can customize who receives notifications by providing your own list of contacts.

Before you begin

Enable the Essential Contacts API.

Enable the API

Required roles

To get the permissions that you need to manage contacts, ask your administrator to grant you the following IAM roles on the project, folder, or organization where the contact is assigned :

For more information about granting roles, see Manage access to projects, folders, and organizations.

These predefined roles contain the permissions required to manage contacts. To see the exact permissions that are required, expand the Required permissions section:

The following permissions are required to manage contacts:

  • To view contacts:
    • essentialcontacts.contacts.get
    • essentialcontacts.contacts.list
  • To edit, delete, and create contacts:
    • essentialcontacts.contacts.create
    • essentialcontacts.contacts.delete
    • essentialcontacts.contacts.update

You might also be able to get these permissions with custom roles or other predefined roles.

Notification categories

You can assign contacts to several notifications categories. If you do not add a contact to a category, notifications in that category go to the fallback contact, which is selected based on your members' IAM roles. We recommend adding custom contacts, and not relying on fallback contacts, to help ensure that the correct people receive notifications for your project, folder, or organization.

You can add both individuals and groups as contacts. To reduce the impact of personnel changes, we recommend adding groups as contacts, then managing the membership of those groups to determine who receives notifications. This practice helps ensure that notifications always go to active employees.

Review the following table to learn about notifications categories, fallback contacts, and recommended contacts. If you do not assign a contact to a given category, notifications are sent to the fallback contact.

Category Description Examples Fallback contact Recommended contact
All All notifications from every other category N/A N/A People or automated systems that are responsible for routing or logging a potentially large number of notifications
Billing Billing and payment notifications Price updates, errors, and credits Billing Account Administrator (roles/billing.admin) Finance department staff and people who manage your financial relationship with Google, including people who manage budgets, planning, and accounts related to Google Cloud usage
Legal Legal compliance notifications Enforcement actions, regulatory compliance, government notices Billing Account Administrator (roles/billing.admin) Legal counsel, compliance managers, government relations specialists, and other related professionals
Product updates Changes to Google products New versions, product terms updates, deprecations Project Owner (roles/owner) Product managers, architects, and engineers who can benefit from timely information about changes to Google products and services
Security Security/privacy issue notifications Vulnerabilities, data incidents, and attacks Organization Administrator (roles/resourcemanager.organizationAdmin) IT security, operations security, and other people whose job it is to safeguard your company and customer data and ensure business continuity
Suspension Notifications related to immediate account and project suspension Apigee evaluation compliance, copyright infringements, and coin mining Project Owner (roles/owner) People immediately responsible for keeping your IT infrastructure and business applications up and running
Technical Technical events and other operational issues Logging configuration errors, data loss prevention updates, and Actions on Google status Project Owner (roles/owner) IT professionals, reliability engineers, admins, on-call lists, and other people who need to know of current and upcoming technical events and issues to better manage your IT assets and avoid disruptions

Supported languages

In Essential Contacts, each contact has a preferred language setting. Notification creators can reference this setting when sending notifications.

When you add a contact in the Google Cloud console, the Google Cloud console automatically configures the contact's preferred language based on the contact creator's preferred language settings. When you add a contact using the API, you manually configure the contact's preferred language using a language code. This language code can refer to any of the languages that Essential Contacts supports.

Language Language code
Afrikaans af
Albanian sq
Amharic am
Arabic ar
Arabic (Egyptian) ar-EG
Armenian hy
Azerbaijani az
Basque eu
Belarusian be
Bengali bn
Bosnian bs
Bulgarian bg
Burmese my
Catalan ca
Chinese zh
Chinese (Hong Kong) zh-HK
Chinese (Taiwan) zh-TW
Croatian hr
Czech cs
Danish da
Dutch nl
English en
English (Australia) en-AU
English (UK) en-GB
English (US) en-US
Estonian et
Filipino fil
Finnish fi
French fr
French (Canada) fr-CA
Galician gl
German de
Gerogian ka
Greek el
Gujarati gu
Hebrew iw
Hindi hi
Hungarian hu
Icelandic is
Indonesian id
Irish ga
Italian it
Japanese ja
Javanese jv
Kannada kn
Kazakh kk
Khmer km
Korean ko
Kyrgyz ky
Lao lo
Latvian lv
Lithuanian lt
Macedonian mk
Malay ms
Malayalam ml
Marathi mr
Mongolian mn
Nepali ne
Norwegian no
Pashto ps
Persian fa
Polish pl
Portuguese pt
Portuguese (Brazil) pt-BR
Portuguese (Portugal) pt-PT
Punjabi pa
Romanian ro
Russian ru
Serbian sr
Sindhi sd
Sinhala si
Slovak sk
Slovenian sl
Somali so
Spanish es
Spanish (Latin America) es-419
Swahili sw
Swedish sv
Tamil ta
Telugu te
Thai th
Turkish tr
Turkmen tk
Ukranian uk
Urdu ur
Uzbek uz
Vietnamese vi
Welsh cy
Zulu zu

Best practices for assigning contacts

You can assign contacts at the project, folder, or organization level.

Contacts are inherited through the Google Cloud resource hierarchy. As a result, if you add a contact at the organization level, they receive notifications for the organization and for all folders and projects in the organization. Similarly, if you add a contact at the folder level, they receive notifications for the folder and for all folders and projects in the folder.

Where you decide to assign contacts depends on the structure of your organization. However, we generally recommend assigning contacts at the following levels, based on their notification category:

Recommended level Notification category
Organization level
  • Billing
  • Legal
  • Security1
Folder/project level
  • All
  • Product updates
  • Security1
  • Suspension
  • Technical2

1 The level at which you assign security contacts depends on your organization's specific security practices. For example, if individual project owners are in charge of security for their own projects, you would assign your security contacts at the project level. However, if an organization-wide group manages security for all projects, you would assign your security contacts at the organization level.

2 Technical category contacts receive a large number of email notifications. Assign these contacts at the folder or project level to enable them to process the incoming notification flow.

Limiting allowed domains for contacts

To restrict the email address domains that new contacts can have, set the organization policy constraint constraints/essentialcontacts.allowedContactDomains. Existing contacts are not impacted by this constraint.

To learn how to set organization policy constraints, see Organization policy constraints.

Listing contacts

To list all contacts in your project, folder, or organization, do the following:

  1. In the Google Cloud console, go to the Essential contacts page.

    Go to the Essential contacts page

  2. Make sure the name of your project, folder, or organization appears in the resource selector at the top of the page. The resource selector tells you what project, folder, or organization you are currently managing contacts for.

  3. To list the contacts by category, select Category. To list the contacts alphabetically, select Contacts.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. With the Google Cloud CLI, you can either list the contacts that are defined on a resource, or list all contacts and inherited contacts for a resource.

    To view the contacts that have been defined on a specific project, folder, or organization, use the gcloud essential-contacts list command:

    gcloud essential-contacts list --RESOURCE_TYPE="RESOURCE_ID"

    Replace the following values:

    • RESOURCE_TYPE: The resource type that you want to list contacts for. Use the value project, folder, or organization.
    • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.

    Alternatively, if you do not specify a resource type or ID, the gcloud CLI lists contacts for the current project.

    The response is similar to the following:

    ---
    email: my-contact-1@example.com
    languageTag: en-US
    name: projects/my-projects/contacts/1
    notificationCategorySubscriptions:
    - ALL
    ---
    email: my-contact-2@example.com
    languageTag: en-US
    name: projects/my-projects/contacts/2
    notificationCategorySubscriptions:
    - BILLING
    ---
    

    Child resources (folders and projects) inherit contacts from their ancestors (organizations and other folders). If you want to list all contacts and inherited contacts for a resource, use the gcloud essential-contacts compute command:

    gcloud essential-contacts compute --notification-categories="NOTIFICATION_CATEGORY" \
      --RESOURCE_TYPE="RESOURCE_ID"

    Replace the following values:

    Before using any of the request data below, make the following replacements:

    • NOTIFICATION_CATEGORIES: A comma-separated list of the categories of notifications that you want to compute contacts for. The list can contain any of the following values: all, billing, legal, product-updates, security, suspension, technical, and notification-category-unspecified. Choosing a value of all lists contacts for all categories.
    • RESOURCE_TYPE: The resource type that you want to compute contacts for. Use the value project, folder, or organization.
    • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.

    If you do not specify a resource type and ID, the gcloud CLI lists contacts for the current project.

    The response lists all contacts and inherited contacts for the resource:

    ---
    email: my-contact-1@example.com
    languageTag: en-US
    name: projects/my-projects/contacts/1
    notificationCategorySubscriptions:
    - ALL
    ---
    email: my-contact-2@example.com
    languageTag: en-US
    name: projects/my-projects/contacts/2
    notificationCategorySubscriptions:
    - BILLING
    ---
    email: my-organization-contact@example.com
    languageTag: en-US
    name: organizations/my-organization/contacts/1
    notificationCategorySubscriptions:
    - ALL
    ---
    

With the Essential Contacts REST API, you can either list the contacts that are defined on a resource, or list all contacts and inherited contacts for a resource.

To view the contacts that have been defined on a specific project, folder, or organization, use the Essential Contacts API's contacts.list method.

Before using any of the request data below, make the following replacements:

  • RESOURCE_TYPE: The resource type that you want to list contacts for. Use the value projects, folders, or organizations.
  • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.
  • PAGE_SIZE: Optional. The number of contacts to include in the response. The default value is 50, and the maximum value is 100. If the number of contacts is greater than the page size, the response contains a pagination token that you can use to retrieve the next page of results.
  • NEXT_PAGE_TOKEN: Optional. The pagination token returned in an earlier response from this method. If specified, the list of contacts starts where the previous response ended.

Request:

GET essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts?pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN

To send your request, expand one of these options:

Execute the following command:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts?pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN
  

Execute the following command:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
  -Method GET `
  -Headers $headers `
  -Uri "https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts?pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN" | Select-Object -Expand Content
  

After sending the request, you receive a JSON response similar to the following:

{
  "contacts": [
    {
      "name": "projects/my-projects/contacts/1",
      "email": "my-contact-1@example.com",
      "notificationCategorySubscriptions": [
        "ALL"
      ],
      "languageTag": "en-US"
    },
    {
      "name": "projects/my-projects/contacts/2",
      "email": "my-contact-2@example.com",
      "notificationCategorySubscriptions": [
        "BILLING"
      ],
      "languageTag": "en-US"
    }
  ]
}

Child resources (folders and projects) inherit contacts from their ancestors (organizations and other folders). If you want to list all contacts and inherited contacts for a resource, use the Essential Contacts API's contacts.compute method.

Before using any of the request data below, make the following replacements:

  • RESOURCE_TYPE: The resource type that you want to compute contacts for. Use the value projects, folders, or organizations.
  • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.
  • NOTIFICATION_CATEGORY: The categories of notifications that you want to compute contacts for. You can repeat this field to list contacts for multiple notification categories. The NOTIFICATION_CATEGORY can be any of the following values: ALL, BILLING, LEGAL, PRODUCT_UPDATES, SECURITY, SUSPENSION, TECHNICAL, and NOTIFICATION_CATEGORY_UNSPECIFIED. Choosing a value of ALL lists contacts for all categories.
  • PAGE_SIZE: Optional. The number of contacts to include in the response. The default value is 50, and the maximum value is 100. If the number of contacts is greater than the page size, the response contains a pagination token that you can use to retrieve the next page of results.
  • NEXT_PAGE_TOKEN: Optional. The pagination token returned in an earlier response from this method. If specified, the list of contacts starts where the previous response ended.

Request:

GET essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts:compute?notificationCategories=NOTIFICATION_CATEGORY&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN

To send your request, expand one of these options:

Execute the following command:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts:compute?notificationCategories=NOTIFICATION_CATEGORY&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN

Execute the following command:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
  -Method GET `
  -Headers $headers `
  -Uri "https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts:compute?notificationCategories=NOTIFICATION_CATEGORIES&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN" | Select-Object -Expand Content

The response lists all contacts and inherited contacts for the resource:

{
  "contacts": [
    {
      "name": "projects/my-projects/contacts/1",
      "email": "my-project-contact-1@example.com",
      "notificationCategorySubscriptions": [
        "ALL"
      ],
      "languageTag": "en-US"
    },
    {
      "name": "projects/my-projects/contacts/2",
      "email": "my-project-contact-2@example.com",
      "notificationCategorySubscriptions": [
        "BILLING"
      ],
      "languageTag": "en-US"
    },
    {
      "name": "organizations/my-organization/contacts/1",
      "email": "my-organization-contact@example.com",
      "notificationCategorySubscriptions": [
        "ALL"
      ],
      "languageTag": "en-US"
    }
  ]
}

Managing individual essential contacts

You can add contacts, remove them, or assign notification categories for them on the Essential contacts page in the Google Cloud console, or by using the REST API.

Adding a contact

To add a contact, do the following:

  1. In the Google Cloud console, go to the Essential contacts page.

    Go to the Essential contacts page

  2. Make sure the name of your project, folder, or organization appears in the resource selector at the top of the page. The resource selector tells you what project, folder, or organization you are currently managing contacts for.

  3. Click Add contact.

  4. In the Email and Confirm email fields, enter the email address of the contact.

  5. From the Notification categories drop-down menu, select the notification categories that you want the contact to receive communications for. For a list of notification categories and recommended contacts, see Identifying contacts on this page.

  6. Click Save.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. To add a new contact, use the gcloud essential-contacts create command:

    gcloud essential-contacts create --email="EMAIL" \
        --notification-categories="NOTIFICATION_CATEGORIES" \
        --language="LANGUAGE" \
        --RESOURCE_TYPE="RESOURCE_ID"

    Replace the following values:

    • EMAIL: The email address of your contact. You cannot change this field after you create your contact.
    • NOTIFICATION_CATEGORIES: A comma-separated list of the the notification categories that you want the contact to receive communications for. The list can contain any of the following values: all, billing, legal, product-updates, security, suspension, technical, technical-incidents , and notification-category-unspecified. Choosing a value of all lists contacts for all categories.

      For a list of recommended contacts for each category, see Identifying contacts on this page.

    • LANGUAGE: The language code for your contact's preferred notification language. You can include the language code of any of the supported languages.
    • RESOURCE_TYPE: The resource type that you want to create a contact for. Use the value project, folder, or organization.
    • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.

    If you do not specify a resource type and ID, the gcloud CLI creates a contact in the current project.

    If the command is successful, no response is returned.

To add a new contact, use the Essential Contacts API's contacts.create method.

Before using any of the request data below, make the following replacements:

  • RESOURCE_TYPE: The resource type that you want to create a contact for. Use the value projects, folders, or organizations.
  • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.
  • EMAIL: The email address of your contact. You cannot change this field after you create your contact.
  • NOTIFICATION_CATEGORY_1 and NOTIFICATION_CATEGORY_2: The notification categories that you want the contact to receive communications for. This value can be any of the following: ALL, BILLING, LEGAL, PRODUCT_UPDATES, SECURITY, SUSPENSION, TECHNICAL.

    For a list of recommended contacts for each category, see Identifying contacts on this page.

  • LANGUAGE: The language code for your contact's preferred notification language. You can include the language code of any of the supported languages.

Request:

POST essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts

Request body:

{
  "email": "EMAIL",
  "notificationCategorySubscriptions": [
    "NOTIFICATION_CATEGORY_1",
    "NOTIFICATION_CATEGORY_2"
  ],
  "languageTag": "LANGUAGE"
}

To send your request, expand one of these options:

Save the request body in a file called request.json, and execute the following command:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts
  

Save the request body in a file called request.json, and execute the following command:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -InFile request.json `
  -Uri "https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts" | Select-Object -Expand Content
  

After sending the request, you receive a JSON response similar to the following:

{
  "name": "projects/my-project/contacts/3",
  "email": "my-new-contact@example.com",
  "notificationCategorySubscriptions": [
    "SUSPENSION",
    "TECHNICAL"
  ],
  "languageTag": "en"
}

Changing a contact

To change which categories a contact is assigned to, do the following:

  1. In the Google Cloud console, go to the Essential contacts page.

    Go to the Essential contacts page

  2. Make sure the name of your project, folder, or organization appears in the resource selector at the top of the page. The resource selector tells you what project, folder, or organization you are currently managing contacts for.

  3. Next to View by, select Contact.

  4. Click next to the contact whose category you want to change.

  5. Select the notification categories you want from the Notification categories drop-down menu and click Save.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. To update an existing contact, use the gcloud essential-contacts update command:

    gcloud essential-contacts update CONTACT_ID \
        --notification-categories="NOTIFICATION_CATEGORIES" \
        --language="LANGUAGE"
        --RESOURCE_TYPE="RESOURCE_ID"

    Replace the following values:

    • CONTACT_ID: The numeric ID of the contact you want to update. To see the IDs of all contacts in your project, folder, or organization, list your contacts. The numeric ID is everything after contacts in the contact's name.
    • NOTIFICATION_CATEGORIES: A comma-separated list of the the new notification categories that you want the contact to receive communications for. This list will replace the existing list of notification categories.

      The list can contain any of the following values: all, billing, legal, product-updates, security, suspension, technical, technical-incidents , and notification-category-unspecified. Choosing a value of all lists contacts for all categories.

      For a list of recommended contacts for each category, see Identifying contacts on this page.

    • LANGUAGE: The language code for your contact's preferred notification language. You can include the language code of any of the supported languages.
    • RESOURCE_TYPE: The resource type that the contact is defined on. Use the value project, folder, or organization.
    • RESOURCE_ID: The ID of the Google Cloud project, organization, or folder where the contact is defined. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.

    If you do not specify a resource type and ID, the gcloud CLI updates the contact with the specified ID in the current project. If no contact with the specified ID exists, the gcloud CLI returns an error.

    If the command is successful, no response is returned.

To change the notification subscriptions or preferred language of an existing contact, use the Essential Contacts API's contacts.patch method.

Before using any of the request data below, make the following replacements:

  • RESOURCE_TYPE: The resource type that you want to list contacts for. Use the value projects, folders, or organizations.
  • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.
  • CONTACT_ID: The numeric ID of the contact you want to update. To see the IDs of all contacts in your project, folder, or organization, list your contacts. The numeric ID is everything after contacts in the contact's name.
  • UPDATE_MASK: Optional. A mask describing which fields of the contact you've changed. The format for the mask is a comma-separated list of fully qualified names of fields, for example: notificationCategorySubscriptions,languageTag.
  • EMAIL: The email address of your contact. This field must match the email address associated with the CONTACT_ID that you include in the request.
  • NOTIFICATION_CATEGORY_1 and NOTIFICATION_CATEGORY_2: Optional. The updated notification categories that you want the contact to receive communications for. This value can be any of the following: ALL, BILLING, LEGAL, PRODUCT_UPDATES, SECURITY, SUSPENSION, TECHNICAL.

    For a list of recommended contacts for each category, see Identifying contacts on this page.

  • LANGUAGE: The language code for the contact's preferred notification language. You can include the language code of any of the supported languages.

Request:

PATCH essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts/CONTACT_ID?updateMask="UPDATE_MASK"

Request body:

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/contact/CONTACT_ID",
  "email": "EMAIL",
  "notificationCategorySubscriptions": [
    "NOTIFICATION_CATEGORY_1",
    "NOTIFICATION_CATEGORY_2"
  ],
  "languageTag": "LANGUAGE"
}

To send your request, expand one of these options:

Save the request body in a file called request.json, and execute the following command:

curl -X PATCH \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts/CONTACT_ID?updateMask="UPDATE_MASK"
  

Save the request body in a file called request.json, and execute the following command:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
  -Method PATCH `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -InFile request.json `
  -Uri "https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts/CONTACT_ID?updateMask="UPDATE_MASK"" | Select-Object -Expand Content
  

After sending the request, you receive a JSON response similar to the following:

{
  "name": "projects/my-project/contacts/2",
  "email": "my-new-contact@example.com",
  "notificationCategorySubscriptions": [
    "ALL"
  ],
  "languageTag": "en"
}

Deleting a contact

To delete a contact, do the following:

  1. In the Google Cloud console, go to the Essential contacts page.

    Go to the Essential contacts page

  2. Make sure the name of your project, folder, or organization appears in the resource selector at the top of the page. The resource selector tells you what project, folder, or organization you are currently managing contacts for.

  3. Next to View by, select Contact.

  4. Click next to the email address of the contact you want to delete. Then, in the dialog, confirm that you want to delete the contact.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. To delete an existing contact, use the gcloud essential-contacts delete command:

    gcloud essential-contacts delete CONTACT_ID \
        --RESOURCE_TYPE="RESOURCE_ID"

    Replace the following values:

    • CONTACT_ID: The numeric ID of the contact you want to delete. To see the IDs of all contacts in your project, folder, or organization, list your contacts. The numeric ID is everything after contacts in the contact's name.
    • RESOURCE_TYPE: The resource type that the contact is defined on. Use the value project, folder, or organization.
    • RESOURCE_ID: The ID of the Google Cloud project, organization, or folder where the contact is defined. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.

    If you do not specify a resource type and ID, the gcloud CLI deletes the contact with the specified ID in the current project. If no contact with the specified ID exists, the gcloud CLI returns an error.

    If the command is successful, no response is returned.

To delete a contact, use the Essential Contacts API's contacts.delete method.

Before using any of the request data below, make the following replacements:

  • RESOURCE_TYPE: The resource type that you want to list contacts for. Use the value projects, folders, or organizations.
  • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.
  • CONTACT_ID: The numeric ID of your contact. To see the IDs of all contacts in your project, folder, or organization, list your contacts.

Request:

DELETE essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts/CONTACT_ID

To send your request, expand one of these options:

Execute the following command:

curl -X DELETE \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts/CONTACT_ID
  

Execute the following command:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
  -Method DELETE `
  -Headers $headers `
  -Uri "https://essentialcontacts.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/contacts/CONTACT_ID" | Select-Object -Expand Content
  

If the request is successful, the response body will be empty.

Managing contacts by category

In the Google Cloud console, you can also manage contacts by category by going to the Category tab on the Essential contacts page.

To add, change, or delete the contacts assigned to a single category, do the following:

  1. In the Google Cloud console, go to the Essential contacts page.

    Go to the Essential contacts page

  2. Make sure the name of your project, folder, or organization appears in the resource selector at the top of the page. The resource selector tells you what project, folder, or organization you are currently managing contacts for.

  3. Next to View by, select Category.

  4. Click in the same row as the category whose contacts you want to manage.

  5. Manage the contacts assigned to the category:

    • To add a new contact, click Add contact, then follow the steps to add a contact described on this page.
    • To change which category a contact is assigned to, click next to the contact whose category you want to change. Then, select the notification categories you want from the Notification categories drop-down menu and click Save.

    • To delete a contact, click next to that contact's email address.

Verifying email transmissions

You can send a test email to contacts in each category to verify whether the email accounts are able to receive emails from Google Cloud.

To send a test email to contacts in a specific category, do the following:

  1. In the Google Cloud console, go to the Essential contacts page.

    Go to the Essential contacts page

  2. Make sure the name of your project, folder, or organization appears in the resource selector at the top of the page. The resource selector displays the project, folder, or organization you are currently managing contacts for.

  3. Next to View by, select Category.

  4. Click in the same row as the category whose contacts you want to deliver test emails to.

  5. Select the checkboxes next to the contacts to whom you want to send emails.

  6. Click Send. A test email is sent to the selected contacts.

  7. Communicate with each contact to make sure they received a test email from gcp-essential-contacts-noreply@google.com.

Managing contacts with Terraform

You can use Terraform to manage your notification contacts. Contacts have the following format in Terraform language:

resource "google_essential_contacts_contact" "contact" {
  parent = "RESOURCE_TYPE/RESOURCE_ID"
  email = "EMAIL"
  language_tag = "LANGUAGE"
  notification_category_subscriptions = NOTIFICATION_CATEGORIES
}

When creating a contact, replace the following values:

  • RESOURCE_TYPE: The resource type that you want to list contacts for. Use the value projects, folders, or organizations.
  • RESOURCE_ID: Your Google Cloud project, organization, or folder ID. Project IDs are alphanumeric strings, like my-project. Folder and organization IDs are numeric, like 123456789012.
  • EMAIL: The email address of your contact. You cannot change this field after you create your contact.
  • LANGUAGE: Optional. The language code for the contact's preferred notification language. You can include the language code of any of the supported languages.
  • NOTIFICATION_CATEGORIES: An array of the notification categories that you want the contact to receive communications for. For example, ["BILLING", "LEGAL"].

    This array can contain any of the following values: ALL, BILLING, LEGAL, PRODUCT_UPDATES, SECURITY, SUSPENSION, TECHNICAL.

    For a list of recommended contacts for each category, see Identifying contacts on this page.

To add, modify or remove a contact, add, modify or remove a contact resource in your Terraform configuration file.

For more details, see the Terraform Essential Contacts documentation.

What's next