{
  "parameters": {
    "alt": {
      "default": "json",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "location": "query",
      "description": "Data format for response."
    },
    "access_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth access token."
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "$.xgafv": {
      "location": "query",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format."
    },
    "prettyPrint": {
      "location": "query",
      "description": "Returns response with indentations and line breaks.",
      "type": "boolean",
      "default": "true"
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "upload_protocol": {
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string"
    },
    "uploadType": {
      "type": "string",
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "oauth_token": {
      "location": "query",
      "description": "OAuth 2.0 token for the current user.",
      "type": "string"
    },
    "key": {
      "type": "string",
      "location": "query",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token."
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    }
  },
  "schemas": {
    "GoogleCloudEssentialcontactsV1Contact": {
      "properties": {
        "validateTime": {
          "type": "string",
          "description": "Output only. The last time the validation_state was updated, either manually or automatically. A contact is considered stale if its validation state was updated more than 1 year ago.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}"
        },
        "validationState": {
          "enumDescriptions": [
            "The validation state is unknown or unspecified.",
            "The contact is marked as valid. This is usually done manually by the contact admin. All new contacts begin in the valid state.",
            "The contact is considered invalid. This may become the state if the contact's email is found to be unreachable."
          ],
          "description": "Output only. The validity of the contact. A contact is considered valid if it is the correct recipient for notifications for a particular resource.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "VALIDATION_STATE_UNSPECIFIED",
            "VALID",
            "INVALID"
          ]
        },
        "notificationCategorySubscriptions": {
          "description": "Required. The categories of notifications that the contact will receive communications for.",
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Notification category is unrecognized or unspecified.",
              "All notifications related to the resource, including notifications pertaining to categories added in the future.",
              "Notifications related to imminent account suspension.",
              "Notifications related to security/privacy incidents, notifications, and vulnerabilities.",
              "Notifications related to technical events and issues such as outages, errors, or bugs.",
              "Notifications related to billing and payments notifications, price updates, errors, or credits.",
              "Notifications related to enforcement actions, regulatory compliance, or government notices.",
              "Notifications related to new versions, product terms updates, or deprecations.",
              "Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL."
            ],
            "type": "string",
            "enum": [
              "NOTIFICATION_CATEGORY_UNSPECIFIED",
              "ALL",
              "SUSPENSION",
              "SECURITY",
              "TECHNICAL",
              "BILLING",
              "LEGAL",
              "PRODUCT_UPDATES",
              "TECHNICAL_INCIDENTS"
            ]
          }
        },
        "languageTag": {
          "type": "string",
          "description": "Required. The preferred language for notifications, as a ISO 639-1 language code. See [Supported languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages) for a list of supported languages."
        },
        "email": {
          "description": "Required. The email address to send notifications to. The email address does not need to be a Google Account.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleCloudEssentialcontactsV1Contact",
      "description": "A contact that will receive notifications from Google Cloud."
    },
    "GoogleCloudEssentialcontactsV1ListContactsResponse": {
      "type": "object",
      "description": "Response message for the ListContacts method.",
      "properties": {
        "nextPageToken": {
          "description": "If there are more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token` and the rest of the parameters the same as the original request.",
          "type": "string"
        },
        "contacts": {
          "description": "The contacts for the specified resource.",
          "type": "array",
          "items": {
            "$ref": "GoogleCloudEssentialcontactsV1Contact"
          }
        }
      },
      "id": "GoogleCloudEssentialcontactsV1ListContactsResponse"
    },
    "GoogleProtobufEmpty": {
      "properties": {},
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "id": "GoogleProtobufEmpty",
      "type": "object"
    },
    "GoogleCloudEssentialcontactsV1ComputeContactsResponse": {
      "type": "object",
      "id": "GoogleCloudEssentialcontactsV1ComputeContactsResponse",
      "description": "Response message for the ComputeContacts method.",
      "properties": {
        "nextPageToken": {
          "description": "If there are more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token` and the rest of the parameters the same as the original request.",
          "type": "string"
        },
        "contacts": {
          "items": {
            "$ref": "GoogleCloudEssentialcontactsV1Contact"
          },
          "description": "All contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources.",
          "type": "array"
        }
      }
    },
    "GoogleCloudEssentialcontactsV1SendTestMessageRequest": {
      "description": "Request message for the SendTestMessage method.",
      "type": "object",
      "id": "GoogleCloudEssentialcontactsV1SendTestMessageRequest",
      "properties": {
        "contacts": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Required. The list of names of the contacts to send a test message to. Format: organizations/{organization}/contacts/{contact}, folders/{folder}/contacts/{contact} or projects/{project}/contacts/{contact} (where {project} is the project number)"
        },
        "notificationCategory": {
          "enumDescriptions": [
            "Notification category is unrecognized or unspecified.",
            "All notifications related to the resource, including notifications pertaining to categories added in the future.",
            "Notifications related to imminent account suspension.",
            "Notifications related to security/privacy incidents, notifications, and vulnerabilities.",
            "Notifications related to technical events and issues such as outages, errors, or bugs.",
            "Notifications related to billing and payments notifications, price updates, errors, or credits.",
            "Notifications related to enforcement actions, regulatory compliance, or government notices.",
            "Notifications related to new versions, product terms updates, or deprecations.",
            "Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL."
          ],
          "type": "string",
          "enum": [
            "NOTIFICATION_CATEGORY_UNSPECIFIED",
            "ALL",
            "SUSPENSION",
            "SECURITY",
            "TECHNICAL",
            "BILLING",
            "LEGAL",
            "PRODUCT_UPDATES",
            "TECHNICAL_INCIDENTS"
          ],
          "description": "Required. The notification category to send the test message for. All contacts must be subscribed to this category."
        }
      }
    }
  },
  "documentationLink": "https://cloud.google.com/essentialcontacts/docs/",
  "baseUrl": "https://essentialcontacts.googleapis.com/",
  "title": "Essential Contacts API",
  "protocol": "rest",
  "name": "essentialcontacts",
  "version_module": true,
  "servicePath": "",
  "resources": {
    "folders": {
      "resources": {
        "contacts": {
          "methods": {
            "get": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Required. The name of the contact to retrieve. Format: organizations/{organization}/contacts/{contact}, folders/{folder}/contacts/{contact} or projects/{project}/contacts/{contact} (where {project} is the project number)",
                  "location": "path",
                  "type": "string",
                  "pattern": "^folders/[^/]+/contacts/[^/]+$"
                }
              },
              "httpMethod": "GET",
              "id": "essentialcontacts.folders.contacts.get",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "flatPath": "v1/folders/{foldersId}/contacts/{contactsId}",
              "description": "Gets a single contact."
            },
            "create": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "parent": {
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "description": "Required. The resource to save this contact for. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "pattern": "^folders/[^/]+$"
                }
              },
              "id": "essentialcontacts.folders.contacts.create",
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "description": "Adds a new contact for a resource.",
              "httpMethod": "POST",
              "flatPath": "v1/folders/{foldersId}/contacts",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "path": "v1/{+parent}/contacts"
            },
            "compute": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "essentialcontacts.folders.contacts.compute",
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "GET",
              "flatPath": "v1/folders/{foldersId}/contacts:compute",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1ComputeContactsResponse"
              },
              "path": "v1/{+parent}/contacts:compute",
              "parameters": {
                "pageSize": {
                  "format": "int32",
                  "location": "query",
                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.",
                  "type": "integer"
                },
                "notificationCategories": {
                  "type": "string",
                  "enum": [
                    "NOTIFICATION_CATEGORY_UNSPECIFIED",
                    "ALL",
                    "SUSPENSION",
                    "SECURITY",
                    "TECHNICAL",
                    "BILLING",
                    "LEGAL",
                    "PRODUCT_UPDATES",
                    "TECHNICAL_INCIDENTS"
                  ],
                  "description": "The categories of notifications to compute contacts for. If ALL is included in this list, contacts subscribed to any notification category will be returned.",
                  "enumDescriptions": [
                    "Notification category is unrecognized or unspecified.",
                    "All notifications related to the resource, including notifications pertaining to categories added in the future.",
                    "Notifications related to imminent account suspension.",
                    "Notifications related to security/privacy incidents, notifications, and vulnerabilities.",
                    "Notifications related to technical events and issues such as outages, errors, or bugs.",
                    "Notifications related to billing and payments notifications, price updates, errors, or credits.",
                    "Notifications related to enforcement actions, regulatory compliance, or government notices.",
                    "Notifications related to new versions, product terms updates, or deprecations.",
                    "Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL."
                  ],
                  "location": "query",
                  "repeated": true
                },
                "pageToken": {
                  "description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "pattern": "^folders/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The name of the resource to compute contacts for. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "type": "string"
                }
              },
              "description": "Lists all contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources."
            },
            "delete": {
              "description": "Deletes a contact.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "GoogleProtobufEmpty"
              },
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The name of the contact to delete. Format: organizations/{organization}/contacts/{contact}, folders/{folder}/contacts/{contact} or projects/{project}/contacts/{contact} (where {project} is the project number)",
                  "pattern": "^folders/[^/]+/contacts/[^/]+$",
                  "type": "string"
                }
              },
              "flatPath": "v1/folders/{foldersId}/contacts/{contactsId}",
              "path": "v1/{+name}",
              "id": "essentialcontacts.folders.contacts.delete",
              "httpMethod": "DELETE",
              "parameterOrder": [
                "name"
              ]
            },
            "sendTestMessage": {
              "parameters": {
                "resource": {
                  "location": "path",
                  "description": "Required. The name of the resource to send the test message for. All contacts must either be set directly on this resource or inherited from another resource that is an ancestor of this one. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "required": true,
                  "pattern": "^folders/[^/]+$",
                  "type": "string"
                }
              },
              "path": "v1/{+resource}/contacts:sendTestMessage",
              "response": {
                "$ref": "GoogleProtobufEmpty"
              },
              "flatPath": "v1/folders/{foldersId}/contacts:sendTestMessage",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1SendTestMessageRequest"
              },
              "description": "Allows a contact admin to send a test message to contact to verify that it has been configured correctly.",
              "httpMethod": "POST",
              "id": "essentialcontacts.folders.contacts.sendTestMessage",
              "parameterOrder": [
                "resource"
              ]
            },
            "list": {
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1ListContactsResponse"
              },
              "httpMethod": "GET",
              "flatPath": "v1/folders/{foldersId}/contacts",
              "parameterOrder": [
                "parent"
              ],
              "path": "v1/{+parent}/contacts",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Lists the contacts that have been set on a resource.",
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call."
                },
                "pageSize": {
                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.",
                  "location": "query",
                  "format": "int32",
                  "type": "integer"
                },
                "parent": {
                  "pattern": "^folders/[^/]+$",
                  "description": "Required. The parent resource name. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "location": "path",
                  "type": "string",
                  "required": true
                }
              },
              "id": "essentialcontacts.folders.contacts.list"
            },
            "patch": {
              "description": "Updates a contact. Note: A contact's email address cannot be changed.",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "flatPath": "v1/folders/{foldersId}/contacts/{contactsId}",
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "httpMethod": "PATCH",
              "id": "essentialcontacts.folders.contacts.patch",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}",
                  "required": true,
                  "location": "path",
                  "pattern": "^folders/[^/]+/contacts/[^/]+$"
                },
                "updateMask": {
                  "description": "Optional. The update mask applied to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ]
            }
          }
        }
      }
    },
    "projects": {
      "resources": {
        "contacts": {
          "methods": {
            "get": {
              "description": "Gets a single contact.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "essentialcontacts.projects.contacts.get",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^projects/[^/]+/contacts/[^/]+$",
                  "required": true,
                  "description": "Required. The name of the contact to retrieve. Format: organizations/{organization}/contacts/{contact}, folders/{folder}/contacts/{contact} or projects/{project}/contacts/{contact} (where {project} is the project number)",
                  "location": "path"
                }
              },
              "httpMethod": "GET",
              "flatPath": "v1/projects/{projectsId}/contacts/{contactsId}",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}"
            },
            "delete": {
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "description": "Required. The name of the contact to delete. Format: organizations/{organization}/contacts/{contact}, folders/{folder}/contacts/{contact} or projects/{project}/contacts/{contact} (where {project} is the project number)",
                  "pattern": "^projects/[^/]+/contacts/[^/]+$"
                }
              },
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "GoogleProtobufEmpty"
              },
              "id": "essentialcontacts.projects.contacts.delete",
              "flatPath": "v1/projects/{projectsId}/contacts/{contactsId}",
              "description": "Deletes a contact.",
              "httpMethod": "DELETE",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "sendTestMessage": {
              "httpMethod": "POST",
              "id": "essentialcontacts.projects.contacts.sendTestMessage",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Allows a contact admin to send a test message to contact to verify that it has been configured correctly.",
              "path": "v1/{+resource}/contacts:sendTestMessage",
              "flatPath": "v1/projects/{projectsId}/contacts:sendTestMessage",
              "response": {
                "$ref": "GoogleProtobufEmpty"
              },
              "parameterOrder": [
                "resource"
              ],
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1SendTestMessageRequest"
              },
              "parameters": {
                "resource": {
                  "description": "Required. The name of the resource to send the test message for. All contacts must either be set directly on this resource or inherited from another resource that is an ancestor of this one. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "pattern": "^projects/[^/]+$"
                }
              }
            },
            "create": {
              "description": "Adds a new contact for a resource.",
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "parent": {
                  "type": "string",
                  "description": "Required. The resource to save this contact for. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "required": true,
                  "location": "path",
                  "pattern": "^projects/[^/]+$"
                }
              },
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "flatPath": "v1/projects/{projectsId}/contacts",
              "path": "v1/{+parent}/contacts",
              "parameterOrder": [
                "parent"
              ],
              "id": "essentialcontacts.projects.contacts.create"
            },
            "patch": {
              "id": "essentialcontacts.projects.contacts.patch",
              "parameters": {
                "name": {
                  "location": "path",
                  "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}",
                  "required": true,
                  "type": "string",
                  "pattern": "^projects/[^/]+/contacts/[^/]+$"
                },
                "updateMask": {
                  "location": "query",
                  "description": "Optional. The update mask applied to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask",
                  "format": "google-fieldmask",
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "description": "Updates a contact. Note: A contact's email address cannot be changed.",
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "PATCH",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/contacts/{contactsId}",
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              }
            },
            "compute": {
              "path": "v1/{+parent}/contacts:compute",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1ComputeContactsResponse"
              },
              "flatPath": "v1/projects/{projectsId}/contacts:compute",
              "parameterOrder": [
                "parent"
              ],
              "description": "Lists all contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "httpMethod": "GET",
              "parameters": {
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call."
                },
                "pageSize": {
                  "format": "int32",
                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.",
                  "location": "query",
                  "type": "integer"
                },
                "notificationCategories": {
                  "repeated": true,
                  "description": "The categories of notifications to compute contacts for. If ALL is included in this list, contacts subscribed to any notification category will be returned.",
                  "enumDescriptions": [
                    "Notification category is unrecognized or unspecified.",
                    "All notifications related to the resource, including notifications pertaining to categories added in the future.",
                    "Notifications related to imminent account suspension.",
                    "Notifications related to security/privacy incidents, notifications, and vulnerabilities.",
                    "Notifications related to technical events and issues such as outages, errors, or bugs.",
                    "Notifications related to billing and payments notifications, price updates, errors, or credits.",
                    "Notifications related to enforcement actions, regulatory compliance, or government notices.",
                    "Notifications related to new versions, product terms updates, or deprecations.",
                    "Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL."
                  ],
                  "location": "query",
                  "type": "string",
                  "enum": [
                    "NOTIFICATION_CATEGORY_UNSPECIFIED",
                    "ALL",
                    "SUSPENSION",
                    "SECURITY",
                    "TECHNICAL",
                    "BILLING",
                    "LEGAL",
                    "PRODUCT_UPDATES",
                    "TECHNICAL_INCIDENTS"
                  ]
                },
                "parent": {
                  "location": "path",
                  "required": true,
                  "description": "Required. The name of the resource to compute contacts for. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "pattern": "^projects/[^/]+$",
                  "type": "string"
                }
              },
              "id": "essentialcontacts.projects.contacts.compute"
            },
            "list": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.",
                  "type": "string"
                },
                "parent": {
                  "description": "Required. The parent resource name. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "required": true,
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "type": "string"
                },
                "pageSize": {
                  "type": "integer",
                  "format": "int32",
                  "location": "query",
                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100."
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "GET",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1ListContactsResponse"
              },
              "path": "v1/{+parent}/contacts",
              "flatPath": "v1/projects/{projectsId}/contacts",
              "id": "essentialcontacts.projects.contacts.list",
              "description": "Lists the contacts that have been set on a resource."
            }
          }
        }
      }
    },
    "organizations": {
      "resources": {
        "contacts": {
          "methods": {
            "sendTestMessage": {
              "parameterOrder": [
                "resource"
              ],
              "id": "essentialcontacts.organizations.contacts.sendTestMessage",
              "parameters": {
                "resource": {
                  "description": "Required. The name of the resource to send the test message for. All contacts must either be set directly on this resource or inherited from another resource that is an ancestor of this one. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "pattern": "^organizations/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "response": {
                "$ref": "GoogleProtobufEmpty"
              },
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1SendTestMessageRequest"
              },
              "flatPath": "v1/organizations/{organizationsId}/contacts:sendTestMessage",
              "description": "Allows a contact admin to send a test message to contact to verify that it has been configured correctly.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "path": "v1/{+resource}/contacts:sendTestMessage"
            },
            "compute": {
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call."
                },
                "pageSize": {
                  "location": "query",
                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.",
                  "type": "integer",
                  "format": "int32"
                },
                "parent": {
                  "required": true,
                  "description": "Required. The name of the resource to compute contacts for. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "location": "path",
                  "pattern": "^organizations/[^/]+$",
                  "type": "string"
                },
                "notificationCategories": {
                  "type": "string",
                  "enum": [
                    "NOTIFICATION_CATEGORY_UNSPECIFIED",
                    "ALL",
                    "SUSPENSION",
                    "SECURITY",
                    "TECHNICAL",
                    "BILLING",
                    "LEGAL",
                    "PRODUCT_UPDATES",
                    "TECHNICAL_INCIDENTS"
                  ],
                  "enumDescriptions": [
                    "Notification category is unrecognized or unspecified.",
                    "All notifications related to the resource, including notifications pertaining to categories added in the future.",
                    "Notifications related to imminent account suspension.",
                    "Notifications related to security/privacy incidents, notifications, and vulnerabilities.",
                    "Notifications related to technical events and issues such as outages, errors, or bugs.",
                    "Notifications related to billing and payments notifications, price updates, errors, or credits.",
                    "Notifications related to enforcement actions, regulatory compliance, or government notices.",
                    "Notifications related to new versions, product terms updates, or deprecations.",
                    "Child category of TECHNICAL. If assigned, technical incident notifications will go to these contacts instead of TECHNICAL."
                  ],
                  "location": "query",
                  "repeated": true,
                  "description": "The categories of notifications to compute contacts for. If ALL is included in this list, contacts subscribed to any notification category will be returned."
                }
              },
              "path": "v1/{+parent}/contacts:compute",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1ComputeContactsResponse"
              },
              "flatPath": "v1/organizations/{organizationsId}/contacts:compute",
              "description": "Lists all contacts for the resource that are subscribed to the specified notification categories, including contacts inherited from any parent resources.",
              "parameterOrder": [
                "parent"
              ],
              "httpMethod": "GET",
              "id": "essentialcontacts.organizations.contacts.compute",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "list": {
              "parameters": {
                "pageSize": {
                  "type": "integer",
                  "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of `next_page_token` in the response indicates that more results might be available. If not specified, the default page_size is 100.",
                  "format": "int32",
                  "location": "query"
                },
                "pageToken": {
                  "description": "Optional. If present, retrieves the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of other method parameters should be identical to those in the previous call.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "description": "Required. The parent resource name. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)",
                  "pattern": "^organizations/[^/]+$"
                }
              },
              "path": "v1/{+parent}/contacts",
              "description": "Lists the contacts that have been set on a resource.",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1ListContactsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/organizations/{organizationsId}/contacts",
              "httpMethod": "GET",
              "id": "essentialcontacts.organizations.contacts.list"
            },
            "get": {
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "flatPath": "v1/organizations/{organizationsId}/contacts/{contactsId}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The name of the contact to retrieve. Format: organizations/{organization}/contacts/{contact}, folders/{folder}/contacts/{contact} or projects/{project}/contacts/{contact} (where {project} is the project number)",
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "pattern": "^organizations/[^/]+/contacts/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "id": "essentialcontacts.organizations.contacts.get",
              "httpMethod": "GET",
              "path": "v1/{+name}",
              "description": "Gets a single contact."
            },
            "patch": {
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "httpMethod": "PATCH",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "id": "essentialcontacts.organizations.contacts.patch",
              "flatPath": "v1/organizations/{organizationsId}/contacts/{contactsId}",
              "description": "Updates a contact. Note: A contact's email address cannot be changed.",
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "parameters": {
                "updateMask": {
                  "format": "google-fieldmask",
                  "type": "string",
                  "location": "query",
                  "description": "Optional. The update mask applied to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask"
                },
                "name": {
                  "pattern": "^organizations/[^/]+/contacts/[^/]+$",
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "create": {
              "flatPath": "v1/organizations/{organizationsId}/contacts",
              "response": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "description": "Adds a new contact for a resource.",
              "request": {
                "$ref": "GoogleCloudEssentialcontactsV1Contact"
              },
              "httpMethod": "POST",
              "id": "essentialcontacts.organizations.contacts.create",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameters": {
                "parent": {
                  "location": "path",
                  "pattern": "^organizations/[^/]+$",
                  "required": true,
                  "type": "string",
                  "description": "Required. The resource to save this contact for. Format: organizations/{organization}, folders/{folder} or projects/{project} (where {project} is the project number)"
                }
              },
              "path": "v1/{+parent}/contacts",
              "parameterOrder": [
                "parent"
              ]
            },
            "delete": {
              "description": "Deletes a contact.",
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "Required. The name of the contact to delete. Format: organizations/{organization}/contacts/{contact}, folders/{folder}/contacts/{contact} or projects/{project}/contacts/{contact} (where {project} is the project number)",
                  "required": true,
                  "location": "path",
                  "pattern": "^organizations/[^/]+/contacts/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "essentialcontacts.organizations.contacts.delete",
              "flatPath": "v1/organizations/{organizationsId}/contacts/{contactsId}",
              "response": {
                "$ref": "GoogleProtobufEmpty"
              },
              "path": "v1/{+name}",
              "httpMethod": "DELETE"
            }
          }
        }
      }
    }
  },
  "rootUrl": "https://essentialcontacts.googleapis.com/",
  "version": "v1",
  "kind": "discovery#restDescription",
  "canonicalName": "Essentialcontacts",
  "discoveryVersion": "v1",
  "mtlsRootUrl": "https://essentialcontacts.mtls.googleapis.com/",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "ownerDomain": "google.com",
  "basePath": "",
  "batchPath": "batch",
  "id": "essentialcontacts:v1",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "revision": "20260929",
  "ownerName": "Google",
  "description": "",
  "fullyEncodeReservedExpansion": true
}
