{
  "canonicalName": "Cloud Support",
  "protocol": "rest",
  "ownerName": "Google",
  "parameters": {
    "alt": {
      "location": "query",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "description": "Data format for response.",
      "default": "json"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "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.",
      "location": "query"
    },
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "type": "string",
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "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"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    }
  },
  "version": "v2beta",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "documentationLink": "https://cloud.google.com/support/docs/apis",
  "baseUrl": "https://cloudsupport.googleapis.com/",
  "basePath": "",
  "title": "Google Cloud Support API",
  "revision": "20260712",
  "servicePath": "",
  "id": "cloudsupport:v2beta",
  "mtlsRootUrl": "https://cloudsupport.mtls.googleapis.com/",
  "rootUrl": "https://cloudsupport.googleapis.com/",
  "version_module": true,
  "discoveryVersion": "v1",
  "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."
        }
      }
    }
  },
  "fullyEncodeReservedExpansion": true,
  "description": "Manages Google Cloud technical support cases for Customer Care support offerings. ",
  "batchPath": "batch",
  "resources": {
    "cases": {
      "methods": {
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Update a case. Only some fields can be updated. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request PATCH \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header \"Content-Type: application/json\" \\ --data '{ \"priority\": \"P1\" }' \\ \"https://cloudsupport.googleapis.com/v2beta/$case?updateMask=priority\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().patch( name=\"projects/some-project/cases/43112854\", body={ \"displayName\": \"This is Now a New Title\", \"priority\": \"P2\", }, ) print(request.execute()) ```",
          "parameterOrder": [
            "name"
          ],
          "response": {
            "$ref": "Case"
          },
          "parameters": {
            "name": {
              "description": "Identifier. The resource name for the case.",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "type": "string",
              "location": "path",
              "required": true
            },
            "updateMask": {
              "description": "A list of attributes of the case that should be updated. Supported values are `priority`, `display_name`, and `subscriber_email_addresses`. If no fields are specified, all supported fields are updated. Be careful - if you do not provide a field mask, then you might accidentally clear some fields. For example, if you leave the field mask empty and do not provide a value for `subscriber_email_addresses`, then `subscriber_email_addresses` is updated to empty.",
              "location": "query",
              "type": "string",
              "format": "google-fieldmask"
            }
          },
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}",
          "path": "v2beta/{+name}",
          "request": {
            "$ref": "Case"
          },
          "id": "cloudsupport.cases.patch",
          "httpMethod": "PATCH"
        },
        "showFeed": {
          "parameterOrder": [
            "parent"
          ],
          "response": {
            "$ref": "ShowFeedResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Show items in the feed of this case, including case emails, attachments, and comments.",
          "id": "cloudsupport.cases.showFeed",
          "httpMethod": "GET",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:showFeed",
          "parameters": {
            "pageSize": {
              "format": "int32",
              "description": "Optional. The maximum number of feed items fetched with each request.",
              "location": "query",
              "type": "integer"
            },
            "parent": {
              "required": true,
              "location": "path",
              "description": "Required. The resource name of the case for which feed items should be listed.",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "type": "string"
            },
            "pageToken": {
              "description": "Optional. A token identifying the page of results to return. If unspecified, it retrieves the first page.",
              "location": "query",
              "type": "string"
            },
            "orderBy": {
              "description": "Optional. Field to order feed items by, followed by `asc` or `desc` postfix. The only valid field is `creation_time`. This list is case-insensitive, default sorting order is ascending, and the redundant space characters are insignificant. Example: `creation_time desc`",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v2beta/{+parent}:showFeed"
        },
        "close": {
          "response": {
            "$ref": "Case"
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Close a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$case:close\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().close( name=\"projects/some-project/cases/43595344\" ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.cases.close",
          "httpMethod": "POST",
          "request": {
            "$ref": "CloseCaseRequest"
          },
          "path": "v2beta/{+name}:close",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:close",
          "parameters": {
            "name": {
              "required": true,
              "location": "path",
              "description": "Required. The name of the case to close.",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "type": "string"
            }
          }
        },
        "escalate": {
          "response": {
            "$ref": "Case"
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Escalate a case, starting the Google Cloud Support escalation management process. This operation is only available for some support services. Go to https://cloud.google.com/support and look for 'Technical support escalations' in the feature list to find out which ones let you do that. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header \"Content-Type: application/json\" \\ --data '{ \"escalation\": { \"reason\": \"BUSINESS_IMPACT\", \"justification\": \"This is a test escalation.\" } }' \\ \"https://cloudsupport.googleapis.com/v2beta/$case:escalate\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().escalate( name=\"projects/some-project/cases/43595344\", body={ \"escalation\": { \"reason\": \"BUSINESS_IMPACT\", \"justification\": \"This is a test escalation.\", }, }, ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.cases.escalate",
          "httpMethod": "POST",
          "request": {
            "$ref": "EscalateCaseRequest"
          },
          "path": "v2beta/{+name}:escalate",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}:escalate",
          "parameters": {
            "name": {
              "required": true,
              "location": "path",
              "description": "Required. The name of the case to be escalated.",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "type": "string"
            }
          }
        },
        "get": {
          "response": {
            "$ref": "Case"
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Retrieve a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/16033687\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$case\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().get( name=\"projects/some-project/cases/43595344\", ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.cases.get",
          "httpMethod": "GET",
          "path": "v2beta/{+name}",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}",
          "parameters": {
            "name": {
              "description": "Required. The full name of a case to be retrieved.",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "type": "string",
              "required": true,
              "location": "path"
            }
          }
        },
        "list": {
          "id": "cloudsupport.cases.list",
          "httpMethod": "GET",
          "path": "v2beta/{+parent}/cases",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases",
          "parameters": {
            "filter": {
              "description": "An expression used to filter cases. If it's an empty string, then no filtering happens. Otherwise, the endpoint returns the cases that match the filter. Expressions use the following fields separated by `AND` and specified with `=`: - `state`: Can be `OPEN` or `CLOSED`. - `priority`: Can be `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - `creator.email`: The email address of the case creator. EXAMPLES: - `state=CLOSED` - `state=OPEN AND creator.email=\"tester@example.com\"` - `state=OPEN AND (priority=P0 OR priority=P1)`",
              "location": "query",
              "type": "string"
            },
            "productLine": {
              "enumDescriptions": [
                "Unknown product type.",
                "Google Cloud",
                "Google Maps"
              ],
              "location": "query",
              "enum": [
                "PRODUCT_LINE_UNSPECIFIED",
                "GOOGLE_CLOUD",
                "GOOGLE_MAPS"
              ],
              "description": "The product line to request cases for. If unspecified, only Google Cloud cases will be returned.",
              "type": "string"
            },
            "parent": {
              "required": true,
              "location": "path",
              "description": "Required. The name of a parent to list cases under.",
              "pattern": "^[^/]+/[^/]+$",
              "type": "string"
            },
            "pageToken": {
              "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "format": "int32",
              "description": "The maximum number of cases fetched with each request. Defaults to 10.",
              "location": "query",
              "type": "integer"
            }
          },
          "response": {
            "$ref": "ListCasesResponse"
          },
          "parameterOrder": [
            "parent"
          ],
          "description": "Retrieve all cases under a parent, but not its children. For example, listing cases under an organization only returns the cases that are directly parented by that organization. To retrieve cases under an organization and its projects, use `cases.search`. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().list(parent=\"projects/some-project\") print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "search": {
          "response": {
            "$ref": "SearchCasesResponse"
          },
          "parameterOrder": [],
          "description": "Search for cases using a query. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$parent/cases:search\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().search( parent=\"projects/some-project\", query=\"state=OPEN\" ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.cases.search",
          "httpMethod": "GET",
          "path": "v2beta/cases:search",
          "flatPath": "v2beta/cases:search",
          "parameters": {
            "parent": {
              "description": "The name of the parent resource to search for cases under.",
              "location": "query",
              "type": "string"
            },
            "query": {
              "description": "An expression used to filter cases. Expressions use the following fields separated by `AND` and specified with `=`: - `state`: Can be `OPEN` or `CLOSED`. - `priority`: Can be `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify multiple values for priority using the `OR` operator. For example, `priority=P1 OR priority=P2`. - `creator.email`: The email address of the case creator. To search across `displayName`, `description`, and comments, use a global restriction with no keyword or operator. For example, `\"my search\"`. To search only cases updated after a certain date, use `update_time` restricted with that particular date, time, and timezone in ISO datetime format. For example, `update_time\u003e\"2020-01-01T00:00:00-05:00\"`. `update_time` only supports the greater than operator (`\u003e`). If you are using the `v2` version of the API, you must specify the case parent in the `parent` field. If you provide an empty `query`, all cases under the parent resource will be returned. If you are using the `v2beta` version of the API, you must specify the case parent in the `query` field using one of the two fields below, which are only available for `v2beta`. The `parent` field will be ignored. - `organization`: An organization name in the form `organizations/`. - `project`: A project name in the form `projects/`. Examples: For `v2`: - `state=CLOSED` - `state=OPEN AND creator.email=\"tester@example.com\"` - `state=OPEN AND (priority=P0 OR priority=P1)` - `update_time\u003e\"2020-01-01T00:00:00-05:00\"` For `v2beta`: - `organization=\"organizations/123456789\"` - `project=\"projects/my-project-id\"` - `project=\"projects/123456789\"` - `organization=\"organizations/123456789\" AND state=CLOSED` - `project=\"projects/my-project-id\" AND creator.email=\"tester@example.com\"` - `project=\"projects/my-project-id\" AND (priority=P0 OR priority=P1)`",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "The maximum number of cases fetched with each request. The default page size is 10.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "create": {
          "path": "v2beta/{+parent}/cases",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases",
          "parameters": {
            "parent": {
              "location": "path",
              "required": true,
              "description": "Required. The name of the parent under which the case should be created.",
              "pattern": "^[^/]+/[^/]+$",
              "type": "string"
            }
          },
          "id": "cloudsupport.cases.create",
          "httpMethod": "POST",
          "request": {
            "$ref": "Case"
          },
          "description": "Create a new case and associate it with a parent. It must have the following fields set: `display_name`, `description`, `classification`, and `priority`. If you're just testing the API and don't want to route your case to an agent, set `testCase=true`. EXAMPLES: cURL: ```shell parent=\"projects/some-project\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header 'Content-Type: application/json' \\ --data '{ \"display_name\": \"Test case created by me.\", \"description\": \"a random test case, feel free to close\", \"classification\": { \"id\": \"100IK2AKCLHMGRJ9CDGMOCGP8DM6UTB4BT262T31BT1M2T31DHNMENPO6KS36CPJ786L2TBFEHGN6NPI64R3CDHN8880G08I1H3MURR7DHII0GRCDTQM8\" }, \"time_zone\": \"-07:00\", \"subscriber_email_addresses\": [ \"foo@domain.com\", \"bar@domain.com\" ], \"testCase\": true, \"priority\": \"P3\" }' \\ \"https://cloudsupport.googleapis.com/v2beta/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().create( parent=\"projects/some-project\", body={ \"displayName\": \"A Test Case\", \"description\": \"This is a test case.\", \"testCase\": True, \"priority\": \"P2\", \"classification\": { \"id\": \"100IK2AKCLHMGRJ9CDGMOCGP8DM6UTB4BT262T31BT1M2T31DHNMENPO6KS36CPJ786L2TBFEHGN6NPI64R3CDHN8880G08I1H3MURR7DHII0GRCDTQM8\" }, }, ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "response": {
            "$ref": "Case"
          },
          "parameterOrder": [
            "parent"
          ]
        }
      },
      "resources": {
        "attachments": {
          "methods": {
            "list": {
              "description": "List all the attachments associated with a support case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/23598314\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$case/attachments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .attachments() .list(parent=\"projects/some-project/cases/43595344\") ) print(request.execute()) ```",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "ListAttachmentsResponse"
              },
              "parameterOrder": [
                "parent"
              ],
              "path": "v2beta/{+parent}/attachments",
              "parameters": {
                "parent": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The name of the case for which attachments should be listed.",
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
                  "type": "string"
                },
                "pageToken": {
                  "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "The maximum number of attachments fetched with each request. If not provided, the default is 10. The maximum page size that will be returned is 100. The size of each page can be smaller than the requested page size and can include zero. For example, you could request 100 attachments on one page, receive 0, and then on the next page, receive 90.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                }
              },
              "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments",
              "id": "cloudsupport.cases.attachments.list",
              "httpMethod": "GET"
            },
            "get": {
              "id": "cloudsupport.cases.attachments.get",
              "httpMethod": "GET",
              "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments/{attachmentsId}",
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The name of the attachment to get.",
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+/attachments/[^/]+$",
                  "type": "string"
                }
              },
              "path": "v2beta/{+name}",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Attachment"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Retrieve an attachment associated with a support case. EXAMPLES: cURL: ```shell attachment=\"projects/some-project/cases/23598314/attachments/0684M00000P3h1fQAB\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$attachment\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .attachments() .get(name=\"projects/some-project/cases/43595344/attachments/0684M00000P3h1fQAB\") ) print(request.execute()) ```"
            }
          }
        },
        "comments": {
          "methods": {
            "list": {
              "id": "cloudsupport.cases.comments.list",
              "httpMethod": "GET",
              "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments",
              "parameters": {
                "parent": {
                  "description": "Required. The name of the case for which to list comments.",
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
                  "type": "string",
                  "required": true,
                  "location": "path"
                },
                "pageToken": {
                  "description": "A token identifying the page of results to return. If unspecified, the first page is returned.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "format": "int32",
                  "description": "The maximum number of comments to fetch. Defaults to 10.",
                  "location": "query",
                  "type": "integer"
                }
              },
              "path": "v2beta/{+parent}/comments",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListCommentsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "List all the comments associated with a case. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43595344\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .comments() .list(parent=\"projects/some-project/cases/43595344\") ) print(request.execute()) ```"
            },
            "get": {
              "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments/{commentsId}",
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The name of the comment to retrieve.",
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+/comments/[^/]+$",
                  "type": "string"
                }
              },
              "path": "v2beta/{+name}",
              "id": "cloudsupport.cases.comments.get",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Retrieve a comment. EXAMPLES: cURL: ```shell comment=\"projects/some-project/cases/43595344/comments/234567890\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$comment\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.cases().comments().get( name=\"projects/some-project/cases/43595344/comments/234567890\", ) print(request.execute()) ```",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Comment"
              }
            },
            "create": {
              "response": {
                "$ref": "Comment"
              },
              "parameterOrder": [
                "parent"
              ],
              "description": "Add a new comment to a case. The comment must have the following fields set: `body`. EXAMPLES: cURL: ```shell case=\"projects/some-project/cases/43591344\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header 'Content-Type: application/json' \\ --data '{ \"body\": \"This is a test comment.\" }' \\ \"https://cloudsupport.googleapis.com/v2beta/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = ( supportApiService.cases() .comments() .create( parent=\"projects/some-project/cases/43595344\", body={\"body\": \"This is a test comment.\"}, ) ) print(request.execute()) ```",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "cloudsupport.cases.comments.create",
              "httpMethod": "POST",
              "request": {
                "$ref": "Comment"
              },
              "path": "v2beta/{+parent}/comments",
              "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments",
              "parameters": {
                "parent": {
                  "location": "path",
                  "required": true,
                  "description": "Required. The name of the case to which the comment should be added.",
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "caseClassifications": {
      "methods": {
        "search": {
          "parameters": {
            "product.productLine": {
              "enum": [
                "PRODUCT_LINE_UNSPECIFIED",
                "GOOGLE_CLOUD",
                "GOOGLE_MAPS"
              ],
              "description": "The product line of the Product.",
              "type": "string",
              "location": "query",
              "enumDescriptions": [
                "Unknown product type.",
                "Google Cloud",
                "Google Maps"
              ]
            },
            "query": {
              "description": "An expression used to filter case classifications. If it's an empty string, then no filtering happens. Otherwise, case classifications will be returned that match the filter.",
              "location": "query",
              "type": "string"
            },
            "pageToken": {
              "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "format": "int32",
              "description": "The maximum number of classifications fetched with each request.",
              "location": "query",
              "type": "integer"
            }
          },
          "flatPath": "v2beta/caseClassifications:search",
          "path": "v2beta/caseClassifications:search",
          "id": "cloudsupport.caseClassifications.search",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Retrieve valid classifications to use when creating a support case. Classifications are hierarchical. Each classification is a string containing all levels of the hierarchy separated by `\" \u003e \"`. For example, `\"Technical Issue \u003e Compute \u003e Compute Engine\"`. Classification IDs returned by this endpoint are valid for at least six months. When a classification is deactivated, this endpoint immediately stops returning it. After six months, `case.create` requests using the classification will fail. EXAMPLES: cURL: ```shell curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ 'https://cloudsupport.googleapis.com/v2beta/caseClassifications:search?query=display_name:\"*Compute%20Engine*\"' ``` Python: ```python import googleapiclient.discovery supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=\"v2beta\", discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version=v2\", ) request = supportApiService.caseClassifications().search( query='display_name:\"*Compute Engine*\"' ) print(request.execute()) ```",
          "parameterOrder": [],
          "response": {
            "$ref": "SearchCaseClassificationsResponse"
          }
        }
      }
    },
    "supportEventSubscriptions": {
      "methods": {
        "get": {
          "id": "cloudsupport.supportEventSubscriptions.get",
          "httpMethod": "GET",
          "path": "v2beta/{+name}",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/supportEventSubscriptions/{supportEventSubscriptionsId}",
          "parameters": {
            "name": {
              "description": "Required. The name of the support event subscription to retrieve. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Gets a support event subscription. EXAMPLES: cURL: ```shell support_event_subscription=\"organizations/123456789/supportEventSubscriptions/abcdef123456\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$support_event_subscription\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.supportEventSubscriptions().get( name=\"organizations/123456789/supportEventSubscriptions/abcdef123456\" ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "list": {
          "id": "cloudsupport.supportEventSubscriptions.list",
          "httpMethod": "GET",
          "parameters": {
            "pageSize": {
              "format": "int32",
              "description": "Optional. The maximum number of support event subscriptions to return.",
              "location": "query",
              "type": "integer"
            },
            "filter": {
              "description": "Optional. Filter expression based on AIP-160. Supported fields: - pub_sub_topic - state Examples: - `pub_sub_topic=\"projects/example-project/topics/example-topic\"` - `state=WORKING` - `pub_sub_topic=\"projects/example-project/topics/example-topic\" AND state=WORKING`",
              "location": "query",
              "type": "string"
            },
            "parent": {
              "required": true,
              "location": "path",
              "description": "Required. The fully qualified name of the Cloud resource to list support event subscriptions under. Format: organizations/{organization_id}",
              "pattern": "^[^/]+/[^/]+$",
              "type": "string"
            },
            "showDeleted": {
              "description": "Optional. Whether to show deleted subscriptions. By default, deleted subscriptions are not returned.",
              "location": "query",
              "type": "boolean"
            },
            "pageToken": {
              "description": "Optional. A token identifying the page of results to return. If unspecified, the first page is retrieved. When paginating, all other parameters provided to `ListSupportEventSubscriptions` must match the call that provided the page token.",
              "location": "query",
              "type": "string"
            }
          },
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/supportEventSubscriptions",
          "path": "v2beta/{+parent}/supportEventSubscriptions",
          "parameterOrder": [
            "parent"
          ],
          "response": {
            "$ref": "ListSupportEventSubscriptionsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Lists support event subscriptions. EXAMPLES: cURL: ```shell parent=\"organizations/123456789\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$parent/supportEventSubscriptions\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.supportEventSubscriptions().list( parent=\"organizations/123456789\" ) print(request.execute()) ```"
        },
        "create": {
          "path": "v2beta/{+parent}/supportEventSubscriptions",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/supportEventSubscriptions",
          "parameters": {
            "parent": {
              "location": "path",
              "required": true,
              "description": "Required. The parent resource name where the support event subscription will be created. Format: organizations/{organization_id}",
              "pattern": "^[^/]+/[^/]+$",
              "type": "string"
            }
          },
          "id": "cloudsupport.supportEventSubscriptions.create",
          "httpMethod": "POST",
          "request": {
            "$ref": "SupportEventSubscription"
          },
          "description": "Creates a support event subscription for an organization. EXAMPLES: cURL: ```shell parent=\"organizations/123456789\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header 'Content-Type: application/json' \\ --data '{ \"pub_sub_topic\": \"projects/my-project/topics/my-topic\" }' \\ \"https://cloudsupport.googleapis.com/v2beta/$parent/supportEventSubscriptions\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.supportEventSubscriptions().create( parent=\"organizations/123456789\", body={ \"pub_sub_topic\": \"projects/my-project/topics/my-topic\" }, ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "parameterOrder": [
            "parent"
          ]
        },
        "patch": {
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/supportEventSubscriptions/{supportEventSubscriptionsId}",
          "parameters": {
            "name": {
              "required": true,
              "location": "path",
              "description": "Identifier. The resource name of the support event subscription.",
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$",
              "type": "string"
            },
            "updateMask": {
              "description": "Optional. The list of fields to update. The only supported value is pub_sub_topic.",
              "location": "query",
              "type": "string",
              "format": "google-fieldmask"
            }
          },
          "path": "v2beta/{+name}",
          "id": "cloudsupport.supportEventSubscriptions.patch",
          "httpMethod": "PATCH",
          "request": {
            "$ref": "SupportEventSubscription"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Updates a support event subscription. EXAMPLES: cURL: ```shell support_event_subscription=\"organizations/123456789/supportEventSubscriptions/abcdef123456\" curl \\ --request PATCH \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --header \"Content-Type: application/json\" \\ --data '{ \"pub_sub_topic\": \"projects/my-project/topics/new-topic\" }' \\ \"https://cloudsupport.googleapis.com/v2beta/$support_event_subscription?updateMask=pub_sub_topic\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.supportEventSubscriptions().patch( name=\"organizations/123456789/supportEventSubscriptions/abcdef123456\", body={ \"pub_sub_topic\": \"projects/my-project/topics/new-topic\" }, ) print(request.execute()) ```",
          "parameterOrder": [
            "name"
          ],
          "response": {
            "$ref": "SupportEventSubscription"
          }
        },
        "delete": {
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Soft deletes a support event subscription. EXAMPLES: cURL: ```shell support_event_subscription=\"organizations/123456789/supportEventSubscriptions/abcdef123456\" curl \\ --request DELETE \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$support_event_subscription\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService).supportEventSubscriptions().delete( name=\"organizations/123456789/supportEventSubscriptions/abcdef123456\" ) print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.supportEventSubscriptions.delete",
          "httpMethod": "DELETE",
          "path": "v2beta/{+name}",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/supportEventSubscriptions/{supportEventSubscriptionsId}",
          "parameters": {
            "name": {
              "description": "Required. The name of the support event subscription to delete. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$",
              "type": "string",
              "location": "path",
              "required": true
            }
          }
        },
        "undelete": {
          "request": {
            "$ref": "UndeleteSupportEventSubscriptionRequest"
          },
          "id": "cloudsupport.supportEventSubscriptions.undelete",
          "httpMethod": "POST",
          "parameters": {
            "name": {
              "description": "Required. The name of the support event subscription to undelete. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$",
              "type": "string",
              "required": true,
              "location": "path"
            }
          },
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/supportEventSubscriptions/{supportEventSubscriptionsId}:undelete",
          "path": "v2beta/{+name}:undelete",
          "parameterOrder": [
            "name"
          ],
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Undeletes a support event subscription. EXAMPLES: cURL: ```shell support_event_subscription=\"organizations/123456789/supportEventSubscriptions/abcdef123456\" curl \\ --request POST \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$support_event_subscription:undelete\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.supportEventSubscriptions().undelete( name=\"organizations/123456789/supportEventSubscriptions/abcdef123456\" ) print(request.execute()) ``` Undeletes a support event subscription."
        },
        "expunge": {
          "path": "v2beta/{+name}:expunge",
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/supportEventSubscriptions/{supportEventSubscriptionsId}:expunge",
          "parameters": {
            "name": {
              "description": "Required. The name of the support event subscription to expunge. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "id": "cloudsupport.supportEventSubscriptions.expunge",
          "httpMethod": "POST",
          "request": {
            "$ref": "ExpungeSupportEventSubscriptionRequest"
          },
          "description": "Expunges a support event subscription.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "response": {
            "$ref": "Empty"
          },
          "parameterOrder": [
            "name"
          ]
        }
      }
    },
    "media": {
      "methods": {
        "download": {
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments/{attachmentsId}:download",
          "parameters": {
            "name": {
              "description": "The name of the file attachment to download.",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+/attachments/[^/]+$",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "path": "v2beta/{+name}:download",
          "id": "cloudsupport.media.download",
          "httpMethod": "GET",
          "useMediaDownloadService": true,
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "Download a file attached to a case. When this endpoint is called, no \"response body\" will be returned. Instead, the attachment's blob will be returned. Note: HTTP requests must append \"?alt=media\" to the URL. EXAMPLES: cURL: ```shell name=\"projects/some-project/cases/43594844/attachments/0674M00000WijAnZAJ\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2beta/$name:download?alt=media\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) request = supportApiService.media().download( name=\"projects/some-project/cases/43595344/attachments/0684M00000Pw6pHQAR\" ) request.uri = request.uri.split(\"?\")[0] + \"?alt=media\" print(request.execute()) ```",
          "parameterOrder": [
            "name"
          ],
          "supportsMediaDownload": true,
          "response": {
            "$ref": "Media"
          }
        },
        "upload": {
          "response": {
            "$ref": "Attachment"
          },
          "parameterOrder": [
            "parent"
          ],
          "description": "Create a file attachment on a case or Cloud resource. The attachment must have the following fields set: `filename`. EXAMPLES: cURL: ```shell echo \"This text is in a file I'm uploading using CSAPI.\" \\ \u003e \"./example_file.txt\" case=\"projects/some-project/cases/43594844\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ --data-binary @\"./example_file.txt\" \\ \"https://cloudsupport.googleapis.com/upload/v2beta/$case/attachments?attachment.filename=uploaded_via_curl.txt\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2beta\" supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=api_version, discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version={api_version}\", ) file_path = \"./example_file.txt\" with open(file_path, \"w\") as file: file.write( \"This text is inside a file I'm going to upload using the Cloud Support API.\", ) request = supportApiService.media().upload( parent=\"projects/some-project/cases/43595344\", media_body=file_path ) request.uri = request.uri.split(\"?\")[0] + \"?attachment.filename=uploaded_via_python.txt\" print(request.execute()) ```",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.media.upload",
          "httpMethod": "POST",
          "request": {
            "$ref": "CreateAttachmentRequest"
          },
          "path": "v2beta/{+parent}/attachments",
          "mediaUpload": {
            "protocols": {
              "simple": {
                "multipart": true,
                "path": "/upload/v2beta/{+parent}/attachments"
              }
            },
            "accept": [
              "*/*"
            ]
          },
          "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/attachments",
          "supportsMediaUpload": true,
          "parameters": {
            "parent": {
              "required": true,
              "location": "path",
              "description": "Required. The name of the case or Cloud resource to which the attachment should be attached.",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "type": "string"
            }
          }
        }
      }
    }
  },
  "schemas": {
    "FeedItem": {
      "description": "A feed item associated with a support case.",
      "type": "object",
      "properties": {
        "deletedAttachment": {
          "description": "Output only. A deleted attachment that used to be associated with the support case.",
          "readOnly": true,
          "$ref": "Attachment"
        },
        "emailMessage": {
          "description": "Output only. An email message received in reply to the case.",
          "readOnly": true,
          "$ref": "EmailMessage"
        },
        "comment": {
          "description": "Output only. A comment added to the case.",
          "readOnly": true,
          "$ref": "Comment"
        },
        "eventTime": {
          "format": "google-datetime",
          "description": "Output only. Time corresponding to the event of this item.",
          "readOnly": true,
          "type": "string"
        },
        "attachment": {
          "description": "Output only. An attachment attached to the case.",
          "readOnly": true,
          "$ref": "Attachment"
        }
      },
      "id": "FeedItem"
    },
    "SearchCaseClassificationsResponse": {
      "id": "SearchCaseClassificationsResponse",
      "description": "The response message for SearchCaseClassifications endpoint.",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `caseClassifications.list` requests. If unspecified, there are no more results to retrieve.",
          "type": "string"
        },
        "caseClassifications": {
          "items": {
            "$ref": "CaseClassification"
          },
          "description": "The classifications retrieved.",
          "type": "array"
        }
      }
    },
    "ListAttachmentsResponse": {
      "id": "ListAttachmentsResponse",
      "description": "The response message for the ListAttachments endpoint.",
      "type": "object",
      "properties": {
        "attachments": {
          "items": {
            "$ref": "Attachment"
          },
          "description": "The list of attachments associated with a case.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.attachments.list` requests. If unspecified, there are no more results to retrieve.",
          "type": "string"
        }
      }
    },
    "ListCasesResponse": {
      "id": "ListCasesResponse",
      "description": "The response message for the ListCases endpoint.",
      "type": "object",
      "properties": {
        "cases": {
          "items": {
            "$ref": "Case"
          },
          "description": "The list of cases associated with the parent after any filters have been applied.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.list` requests. If unspecified, there are no more results to retrieve.",
          "type": "string"
        }
      }
    },
    "ListSupportEventSubscriptionsResponse": {
      "id": "ListSupportEventSubscriptionsResponse",
      "description": "Response message for ListSupportEventSubscriptions.",
      "type": "object",
      "properties": {
        "supportEventSubscriptions": {
          "items": {
            "$ref": "SupportEventSubscription"
          },
          "description": "The support event subscriptions.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      }
    },
    "DownloadParameters": {
      "id": "DownloadParameters",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "ignoreRange": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        },
        "allowGzipCompression": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        }
      }
    },
    "ListCommentsResponse": {
      "id": "ListCommentsResponse",
      "description": "The response message for the ListComments endpoint.",
      "type": "object",
      "properties": {
        "comments": {
          "items": {
            "$ref": "Comment"
          },
          "description": "List of the comments associated with the case.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.comments.list` requests. If unspecified, there are no more results to retrieve.",
          "type": "string"
        }
      }
    },
    "CloseCaseRequest": {
      "description": "The request message for the CloseCase endpoint.",
      "type": "object",
      "properties": {},
      "id": "CloseCaseRequest"
    },
    "DiffChecksumsResponse": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "chunkSizeBytes": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "objectSizeBytes": {
          "format": "int64",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "objectLocation": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        },
        "checksumsLocation": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        },
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      },
      "id": "DiffChecksumsResponse"
    },
    "CaseClassification": {
      "id": "CaseClassification",
      "description": "A Case Classification represents the topic that a case is about. It's very important to use accurate classifications, because they're used to route your cases to specialists who can help you. A classification always has an ID that is its unique identifier. A valid ID is required when creating a case.",
      "type": "object",
      "properties": {
        "product": {
          "description": "The full product the classification corresponds to.",
          "$ref": "Product"
        },
        "id": {
          "description": "The unique ID for a classification. Must be specified for case creation. To retrieve valid classification IDs for case creation, use `caseClassifications.search`. Classification IDs returned by `caseClassifications.search` are guaranteed to be valid for at least 6 months. If a given classification is deactiveated, it will immediately stop being returned. After 6 months, `case.create` requests using the classification ID will fail.",
          "type": "string"
        },
        "displayName": {
          "description": "A display name for the classification. The display name is not static and can change. To uniquely and consistently identify classifications, use the `CaseClassification.id` field.",
          "type": "string"
        }
      }
    },
    "Product": {
      "id": "Product",
      "description": "The product a case may be associated with.",
      "type": "object",
      "properties": {
        "productLine": {
          "description": "The product line of the Product.",
          "type": "string",
          "enumDescriptions": [
            "Unknown product type.",
            "Google Cloud",
            "Google Maps"
          ],
          "enum": [
            "PRODUCT_LINE_UNSPECIFIED",
            "GOOGLE_CLOUD",
            "GOOGLE_MAPS"
          ]
        }
      }
    },
    "Empty": {
      "id": "Empty",
      "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); }",
      "type": "object",
      "properties": {}
    },
    "ObjectId": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "bucketName": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "generation": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "objectName": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      },
      "id": "ObjectId"
    },
    "Media": {
      "id": "Media",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "isPotentialRetry": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        },
        "contentType": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "bigstoreObjectRef": {
          "format": "byte",
          "deprecated": true,
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "diffChecksumsResponse": {
          "$ref": "DiffChecksumsResponse",
          "description": "# gdata.* are outside protos with mising documentation"
        },
        "objectId": {
          "$ref": "ObjectId",
          "description": "# gdata.* are outside protos with mising documentation"
        },
        "mediaId": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "diffUploadRequest": {
          "$ref": "DiffUploadRequest",
          "description": "# gdata.* are outside protos with mising documentation"
        },
        "cosmoBinaryReference": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "token": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "md5Hash": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "compositeMedia": {
          "items": {
            "$ref": "CompositeMedia"
          },
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "array"
        },
        "sha256Hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "diffVersionResponse": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DiffVersionResponse"
        },
        "length": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "sha512Hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "inline": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "crc32cHash": {
          "format": "uint32",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "integer"
        },
        "algorithm": {
          "deprecated": true,
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "hashVerified": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        },
        "diffDownloadResponse": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DiffDownloadResponse"
        },
        "hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "deprecated": true
        },
        "path": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "timestamp": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "uint64"
        },
        "blobstore2Info": {
          "$ref": "Blobstore2Info",
          "description": "# gdata.* are outside protos with mising documentation"
        },
        "blobRef": {
          "deprecated": true,
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "contentTypeInfo": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "ContentTypeInfo"
        },
        "sha1Hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "diffUploadResponse": {
          "$ref": "DiffUploadResponse",
          "description": "# gdata.* are outside protos with mising documentation"
        },
        "downloadParameters": {
          "$ref": "DownloadParameters",
          "description": "# gdata.* are outside protos with mising documentation"
        },
        "referenceType": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "enumDescriptions": [
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation"
          ],
          "enum": [
            "PATH",
            "BLOB_REF",
            "INLINE",
            "GET_MEDIA",
            "COMPOSITE_MEDIA",
            "BIGSTORE_REF",
            "DIFF_VERSION_RESPONSE",
            "DIFF_CHECKSUMS_RESPONSE",
            "DIFF_DOWNLOAD_RESPONSE",
            "DIFF_UPLOAD_REQUEST",
            "DIFF_UPLOAD_RESPONSE",
            "COSMO_BINARY_REFERENCE",
            "ARBITRARY_BYTES"
          ]
        },
        "filename": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      }
    },
    "Comment": {
      "id": "Comment",
      "description": "A comment associated with a support case. Case comments are the primary way for Google Support to communicate with a user who has opened a case. When a user responds to Google Support, the user's responses also appear as comments.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The time when the comment was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "plainTextBody": {
          "description": "Output only. DEPRECATED. DO NOT USE. A duplicate of the `body` field. This field is only present for legacy reasons.",
          "readOnly": true,
          "type": "string",
          "deprecated": true
        },
        "name": {
          "description": "Output only. Identifier. The resource name of the comment.",
          "readOnly": true,
          "type": "string"
        },
        "creator": {
          "description": "Output only. The user or Google Support agent who created the comment.",
          "readOnly": true,
          "$ref": "Actor"
        },
        "body": {
          "description": "The full comment body. Maximum of 12800 characters.",
          "type": "string"
        }
      }
    },
    "EmailMessage": {
      "description": "An email associated with a support case.",
      "type": "object",
      "properties": {
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. Time when this email message object was created.",
          "readOnly": true,
          "type": "string"
        },
        "ccEmailAddresses": {
          "items": {
            "type": "string"
          },
          "description": "Output only. Email addresses CCed on the email.",
          "readOnly": true,
          "type": "array"
        },
        "actor": {
          "description": "Output only. The user or Google Support agent that created this email message. This is inferred from the headers on the email message.",
          "readOnly": true,
          "$ref": "Actor"
        },
        "bodyContent": {
          "description": "Output only. The full email message body. A best-effort attempt is made to remove extraneous reply threads.",
          "readOnly": true,
          "$ref": "TextContent"
        },
        "recipientEmailAddresses": {
          "description": "Output only. Email addresses the email was sent to.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "description": "Identifier. Resource name for the email message.",
          "type": "string"
        },
        "subject": {
          "description": "Output only. Subject of the email.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "EmailMessage"
    },
    "DiffDownloadResponse": {
      "id": "DiffDownloadResponse",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "objectLocation": {
          "$ref": "CompositeMedia",
          "description": "# gdata.* are outside protos with mising documentation"
        }
      }
    },
    "ContentTypeInfo": {
      "id": "ContentTypeInfo",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "fromHeader": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fusionIdDetectionMetadata": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "fromFileName": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fromFusionId": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "bestGuess": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fromBytes": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fromUrlPath": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      }
    },
    "SearchCasesResponse": {
      "id": "SearchCasesResponse",
      "description": "The response message for the SearchCases endpoint.",
      "type": "object",
      "properties": {
        "cases": {
          "description": "The list of cases associated with the parent after any filters have been applied.",
          "type": "array",
          "items": {
            "$ref": "Case"
          }
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Set this in the `page_token` field of subsequent `cases.search` requests. If unspecified, there are no more results to retrieve.",
          "type": "string"
        }
      }
    },
    "SupportEventSubscription": {
      "id": "SupportEventSubscription",
      "description": "A support event subscription.",
      "type": "object",
      "properties": {
        "state": {
          "enumDescriptions": [
            "Unspecified state.",
            "Subscription is active and working.",
            "Subscription is failing. Notifications cannot be published for some reason.",
            "Subscription has been deleted and is pending purge. Notifications are not sent for deleted subscriptions. Deleted subscriptions are purged after their `purge_time` has passed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "WORKING",
            "FAILING",
            "DELETED"
          ],
          "description": "Output only. The state of the subscription.",
          "readOnly": true,
          "type": "string"
        },
        "failureReason": {
          "enumDescriptions": [
            "Unspecified failure reason.",
            "The service account (i.e. cloud-support-apievents@system.gserviceaccount.com) lacks the permission to publish to the customer's Pub/Sub topic.",
            "The specified Pub/Sub topic does not exist.",
            "Message failed to publish due to a system-side error."
          ],
          "enum": [
            "FAILURE_REASON_UNSPECIFIED",
            "PERMISSION_DENIED",
            "TOPIC_NOT_FOUND",
            "OTHER"
          ],
          "description": "Output only. Reason why subscription is failing. State of subscription must be FAILING in order for this to have a value.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Identifier. The resource name of the support event subscription.",
          "type": "string"
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. The time at which the subscription was last updated.",
          "readOnly": true,
          "type": "string"
        },
        "purgeTime": {
          "format": "google-datetime",
          "description": "Output only. The time at which the subscription will be purged.",
          "readOnly": true,
          "type": "string"
        },
        "pubSubTopic": {
          "description": "Required. The name of the Pub/Sub topic to publish notifications to. Format: projects/{project}/topics/{topic}",
          "type": "string"
        },
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The time at which the subscription was created.",
          "readOnly": true,
          "type": "string"
        },
        "deleteTime": {
          "format": "google-datetime",
          "description": "Output only. The time at which the subscription was deleted.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "DiffVersionResponse": {
      "id": "DiffVersionResponse",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "objectSizeBytes": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      }
    },
    "Blobstore2Info": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "readToken": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "downloadReadHandle": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "uploadFragmentListCreationInfo": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "uploadMetadataContainer": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "downloadExternalReadToken": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "blobGeneration": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "blobId": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      },
      "id": "Blobstore2Info"
    },
    "ShowFeedResponse": {
      "id": "ShowFeedResponse",
      "description": "The response message for the ShowFeed endpoint.",
      "type": "object",
      "properties": {
        "feedItems": {
          "description": "The list of feed items associated with the given Case.",
          "type": "array",
          "items": {
            "$ref": "FeedItem"
          }
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. This should be set in the `page_token` field of subsequent `ShowFeedRequests`. If unspecified, there are no more results to retrieve.",
          "type": "string"
        }
      }
    },
    "CreateAttachmentRequest": {
      "description": "The request message for the CreateAttachment endpoint.",
      "type": "object",
      "properties": {
        "attachment": {
          "description": "Required. The attachment to be created.",
          "$ref": "Attachment"
        }
      },
      "id": "CreateAttachmentRequest"
    },
    "Case": {
      "id": "Case",
      "description": "A Case is an object that contains the details of a support case. It contains fields for the time it was created, its priority, its classification, and more. Cases can also have comments and attachments that get added over time. A case is parented by a Google Cloud organization or project. Organizations are identified by a number, so the name of a case parented by an organization would look like this: ``` organizations/123/cases/456 ``` Projects have two unique identifiers, an ID and a number, and they look like this: ``` projects/abc/cases/456 ``` ``` projects/123/cases/456 ``` You can use either of them when calling the API. To learn more about project identifiers, see [AIP-2510](https://google.aip.dev/cloud/2510).",
      "type": "object",
      "properties": {
        "languageCode": {
          "description": "The language the user has requested to receive support in. This should be a BCP 47 language code (e.g., `\"en\"`, `\"zh-CN\"`, `\"zh-TW\"`, `\"ja\"`, `\"ko\"`). If no language or an unsupported language is specified, this field defaults to English (en). Language selection during case creation may affect your available support options. For a list of supported languages and their support working hours, see: https://cloud.google.com/support/docs/language-working-hours",
          "type": "string"
        },
        "timeZone": {
          "description": "The timezone of the user who created the support case. It should be in a format IANA recognizes: https://www.iana.org/time-zones. There is no additional validation done by the API.",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The time this case was last updated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "name": {
          "description": "Identifier. The resource name for the case.",
          "type": "string"
        },
        "subscriberEmailAddresses": {
          "description": "The email addresses to receive updates on this case.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "creator": {
          "$ref": "Actor",
          "description": "The user who created the case. Note: The name and email will be obfuscated if the case was created by Google Support."
        },
        "displayName": {
          "description": "The short summary of the issue reported in this case.",
          "type": "string"
        },
        "description": {
          "description": "A broad description of the issue.",
          "type": "string"
        },
        "severity": {
          "description": "REMOVED. The severity of this case. Use priority instead.",
          "type": "string",
          "enumDescriptions": [
            "Severity is undefined or has not been set yet.",
            "Extreme impact on a production service. Service is hard down.",
            "Critical impact on a production service. Service is currently unusable.",
            "Severe impact on a production service. Service is usable but greatly impaired.",
            "Medium impact on a production service. Service is available, but moderately impaired.",
            "General questions or minor issues. Production service is fully available."
          ],
          "enum": [
            "SEVERITY_UNSPECIFIED",
            "S0",
            "S1",
            "S2",
            "S3",
            "S4"
          ]
        },
        "createTime": {
          "description": "Output only. The time this case was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "escalated": {
          "description": "Whether the case is currently escalated.",
          "type": "boolean"
        },
        "testCase": {
          "description": "Whether this case was created for internal API testing and should not be acted on by the support team.",
          "type": "boolean"
        },
        "state": {
          "enumDescriptions": [
            "Case is in an unknown state.",
            "The case has been created but no one is assigned to work on it yet.",
            "The case is currently being handled by Google support.",
            "Google is waiting for a response.",
            "A solution has been offered for the case, but it isn't yet closed.",
            "The case has been resolved."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "NEW",
            "IN_PROGRESS_GOOGLE_SUPPORT",
            "ACTION_REQUIRED",
            "SOLUTION_PROVIDED",
            "CLOSED"
          ],
          "description": "Output only. The current status of the support case.",
          "readOnly": true,
          "type": "string"
        },
        "priority": {
          "enum": [
            "PRIORITY_UNSPECIFIED",
            "P0",
            "P1",
            "P2",
            "P3",
            "P4"
          ],
          "description": "The priority of this case.",
          "type": "string",
          "enumDescriptions": [
            "Priority is undefined or has not been set yet.",
            "Extreme impact on a production service. Service is hard down.",
            "Critical impact on a production service. Service is currently unusable.",
            "Severe impact on a production service. Service is usable but greatly impaired.",
            "Medium impact on a production service. Service is available, but moderately impaired.",
            "General questions or minor issues. Production service is fully available."
          ]
        },
        "classification": {
          "description": "The issue classification applicable to this case.",
          "$ref": "CaseClassification"
        },
        "contactEmail": {
          "description": "A user-supplied email address to send case update notifications for. This should only be used in BYOID flows, where we cannot infer the user's email address directly from their EUCs.",
          "type": "string"
        }
      }
    },
    "DiffUploadRequest": {
      "id": "DiffUploadRequest",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "objectInfo": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        },
        "checksumsInfo": {
          "$ref": "CompositeMedia",
          "description": "# gdata.* are outside protos with mising documentation"
        }
      }
    },
    "UndeleteSupportEventSubscriptionRequest": {
      "description": "Request message for UndeleteSupportEventSubscription.",
      "type": "object",
      "properties": {},
      "id": "UndeleteSupportEventSubscriptionRequest"
    },
    "EscalateCaseRequest": {
      "id": "EscalateCaseRequest",
      "description": "The request message for the EscalateCase endpoint.",
      "type": "object",
      "properties": {
        "escalation": {
          "description": "The escalation information to be sent with the escalation request.",
          "$ref": "Escalation"
        }
      }
    },
    "Escalation": {
      "id": "Escalation",
      "description": "An escalation of a support case.",
      "type": "object",
      "properties": {
        "justification": {
          "description": "Required. A free text description to accompany the `reason` field above. Provides additional context on why the case is being escalated.",
          "type": "string"
        },
        "reason": {
          "description": "Required. The reason why the Case is being escalated.",
          "type": "string",
          "enumDescriptions": [
            "The escalation reason is in an unknown state or has not been specified.",
            "The case is taking too long to resolve.",
            "The support agent does not have the expertise required to successfully resolve the issue.",
            "The issue is having a significant business impact."
          ],
          "enum": [
            "REASON_UNSPECIFIED",
            "RESOLUTION_TIME",
            "TECHNICAL_EXPERTISE",
            "BUSINESS_IMPACT"
          ]
        }
      }
    },
    "CompositeMedia": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "length": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "path": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "blobRef": {
          "deprecated": true,
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "cosmoBinaryReference": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "sha1Hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "blobstore2Info": {
          "$ref": "Blobstore2Info",
          "description": "# gdata.* are outside protos with mising documentation"
        },
        "md5Hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "inline": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "crc32cHash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "integer",
          "format": "uint32"
        },
        "referenceType": {
          "enumDescriptions": [
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation",
            "# gdata.* are outside protos with mising documentation"
          ],
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "enum": [
            "PATH",
            "BLOB_REF",
            "INLINE",
            "BIGSTORE_REF",
            "COSMO_BINARY_REFERENCE"
          ]
        },
        "objectId": {
          "$ref": "ObjectId",
          "description": "# gdata.* are outside protos with mising documentation"
        }
      },
      "id": "CompositeMedia"
    },
    "DiffUploadResponse": {
      "id": "DiffUploadResponse",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "originalObject": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        }
      }
    },
    "TextContent": {
      "id": "TextContent",
      "description": "Stores text attached to a support object.",
      "type": "object",
      "properties": {
        "plainText": {
          "description": "Content in this field should be rendered and interpreted as-is.",
          "type": "string"
        }
      }
    },
    "Attachment": {
      "id": "Attachment",
      "description": "An Attachment contains metadata about a file that was uploaded to a case - it is NOT a file itself. That being said, the name of an Attachment object can be used to download its accompanying file through the `media.download` endpoint. While attachments can be uploaded in the console at the same time as a comment, they're associated on a \"case\" level, not a \"comment\" level.",
      "type": "object",
      "properties": {
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The time at which the attachment was created.",
          "readOnly": true,
          "type": "string"
        },
        "creator": {
          "description": "Output only. The user who uploaded the attachment. Note, the name and email will be obfuscated if the attachment was uploaded by Google support.",
          "readOnly": true,
          "$ref": "Actor"
        },
        "filename": {
          "description": "The filename of the attachment (e.g. `\"graph.jpg\"`).",
          "type": "string"
        },
        "mimeType": {
          "description": "Output only. The MIME type of the attachment (e.g. text/plain).",
          "readOnly": true,
          "type": "string"
        },
        "sizeBytes": {
          "description": "Output only. The size of the attachment in bytes.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "name": {
          "description": "Output only. Identifier. The resource name of the attachment.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "ExpungeSupportEventSubscriptionRequest": {
      "description": "Request message for ExpungeSupportEventSubscription.",
      "type": "object",
      "properties": {},
      "id": "ExpungeSupportEventSubscriptionRequest"
    },
    "Actor": {
      "id": "Actor",
      "description": "An Actor represents an entity that performed an action. For example, an actor could be a user who posted a comment on a support case, a user who uploaded an attachment, or a service account that created a support case.",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "The name to display for the actor. If not provided, it is inferred from credentials supplied during case creation. When an email is provided, a display name must also be provided. This will be obfuscated if the user is a Google Support agent.",
          "type": "string"
        },
        "email": {
          "description": "The email address of the actor. If not provided, it is inferred from the credentials supplied during case creation. When a name is provided, an email must also be provided. If the user is a Google Support agent, this is obfuscated. This field is deprecated. Use `username` instead.",
          "type": "string",
          "deprecated": true
        },
        "googleSupport": {
          "description": "Output only. Whether the actor is a Google support actor.",
          "readOnly": true,
          "type": "boolean"
        },
        "username": {
          "description": "Output only. The username of the actor. It may look like an email or other format provided by the identity provider. If not provided, it is inferred from the credentials supplied. When a name is provided, a username must also be provided. If the user is a Google Support agent, this will not be set.",
          "readOnly": true,
          "type": "string"
        }
      }
    }
  },
  "ownerDomain": "google.com",
  "name": "cloudsupport",
  "kind": "discovery#restDescription"
}
