{
  "revision": "20260721",
  "batchPath": "batch",
  "canonicalName": "Cloud Support",
  "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."
        }
      }
    }
  },
  "name": "cloudsupport",
  "title": "Google Cloud Support API",
  "ownerName": "Google",
  "baseUrl": "https://cloudsupport.googleapis.com/",
  "servicePath": "",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "version_module": true,
  "version": "v2",
  "resources": {
    "cases": {
      "methods": {
        "create": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+parent}/cases",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases",
          "id": "cloudsupport.cases.create",
          "httpMethod": "POST",
          "parameters": {
            "parent": {
              "pattern": "^[^/]+/[^/]+$",
              "required": true,
              "location": "path",
              "description": "Required. The name of the parent under which the case should be created.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "parent"
          ],
          "response": {
            "$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/v2/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "request": {
            "$ref": "Case"
          }
        },
        "list": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+parent}/cases",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases",
          "id": "cloudsupport.cases.list",
          "httpMethod": "GET",
          "parameters": {
            "filter": {
              "location": "query",
              "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)`",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
              "type": "string"
            },
            "pageSize": {
              "location": "query",
              "format": "int32",
              "description": "The maximum number of cases fetched with each request. Defaults to 10.",
              "type": "integer"
            },
            "parent": {
              "required": true,
              "location": "path",
              "description": "Required. The name of a parent to list cases under.",
              "type": "string",
              "pattern": "^[^/]+/[^/]+$"
            }
          },
          "parameterOrder": [
            "parent"
          ],
          "response": {
            "$ref": "ListCasesResponse"
          },
          "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/v2/$parent/cases\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```"
        },
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}",
          "id": "cloudsupport.cases.patch",
          "httpMethod": "PATCH",
          "parameters": {
            "name": {
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "description": "Identifier. The resource name for the case.",
              "type": "string",
              "required": true,
              "location": "path"
            },
            "updateMask": {
              "location": "query",
              "format": "google-fieldmask",
              "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.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "response": {
            "$ref": "Case"
          },
          "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/v2/$case?updateMask=priority\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "request": {
            "$ref": "Case"
          }
        },
        "escalate": {
          "path": "v2/{+name}:escalate",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}:escalate",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.cases.escalate",
          "httpMethod": "POST",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "Required. The name of the case to be escalated.",
              "type": "string",
              "required": true,
              "location": "path",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$"
            }
          },
          "request": {
            "$ref": "EscalateCaseRequest"
          },
          "response": {
            "$ref": "Case"
          },
          "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/v2/$case:escalate\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```"
        },
        "close": {
          "path": "v2/{+name}:close",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}:close",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.cases.close",
          "httpMethod": "POST",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "Required. The name of the case to close.",
              "type": "string",
              "required": true,
              "location": "path",
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$"
            }
          },
          "request": {
            "$ref": "CloseCaseRequest"
          },
          "response": {
            "$ref": "Case"
          },
          "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/v2/$case:close\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```"
        },
        "search": {
          "response": {
            "$ref": "SearchCasesResponse"
          },
          "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/v2/$parent/cases:search\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "parameters": {
            "pageToken": {
              "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
              "type": "string",
              "location": "query"
            },
            "pageSize": {
              "location": "query",
              "format": "int32",
              "description": "The maximum number of cases fetched with each request. The default page size is 10.",
              "type": "integer"
            },
            "parent": {
              "pattern": "^[^/]+/[^/]+$",
              "required": true,
              "location": "path",
              "description": "The name of the parent resource to search for cases under.",
              "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)`",
              "type": "string",
              "location": "query"
            }
          },
          "parameterOrder": [
            "parent"
          ],
          "id": "cloudsupport.cases.search",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+parent}/cases:search",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases:search"
        },
        "get": {
          "response": {
            "$ref": "Case"
          },
          "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/v2/$case\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "parameters": {
            "name": {
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The full name of a case to be retrieved.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "id": "cloudsupport.cases.get",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}"
        }
      },
      "resources": {
        "attachments": {
          "methods": {
            "list": {
              "response": {
                "$ref": "ListAttachmentsResponse"
              },
              "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/v2/$case/attachments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "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.",
                  "type": "integer"
                },
                "parent": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The name of the case for which attachments should be listed.",
                  "type": "string",
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+$"
                },
                "pageToken": {
                  "location": "query",
                  "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
                  "type": "string"
                }
              },
              "id": "cloudsupport.cases.attachments.list",
              "httpMethod": "GET",
              "path": "v2/{+parent}/attachments",
              "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}/attachments",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "get": {
              "parameters": {
                "name": {
                  "description": "Required. The name of the attachment to get.",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+/attachments/[^/]+$"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Attachment"
              },
              "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/v2/$attachment\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "path": "v2/{+name}",
              "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}/attachments/{attachmentsId}",
              "id": "cloudsupport.cases.attachments.get",
              "httpMethod": "GET"
            }
          }
        },
        "comments": {
          "methods": {
            "get": {
              "path": "v2/{+name}",
              "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}/comments/{commentsId}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "cloudsupport.cases.comments.get",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+/comments/[^/]+$",
                  "description": "Required. The name of the comment to retrieve.",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "response": {
                "$ref": "Comment"
              },
              "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/v2/$comment\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```"
            },
            "list": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "path": "v2/{+parent}/comments",
              "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}/comments",
              "id": "cloudsupport.cases.comments.list",
              "httpMethod": "GET",
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "description": "A token identifying the page of results to return. If unspecified, the first page is returned.",
                  "type": "string"
                },
                "parent": {
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The name of the case for which to list comments.",
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "The maximum number of comments to fetch. Defaults to 10.",
                  "type": "integer"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListCommentsResponse"
              },
              "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/v2/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```"
            },
            "create": {
              "response": {
                "$ref": "Comment"
              },
              "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/v2/$case/comments\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
              "request": {
                "$ref": "Comment"
              },
              "parameters": {
                "parent": {
                  "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
                  "required": true,
                  "location": "path",
                  "description": "Required. The name of the case to which the comment should be added.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "id": "cloudsupport.cases.comments.create",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "path": "v2/{+parent}/comments",
              "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}/comments"
            }
          }
        }
      }
    },
    "media": {
      "methods": {
        "upload": {
          "id": "cloudsupport.media.upload",
          "httpMethod": "POST",
          "path": "v2/{+parent}/attachments",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}/attachments",
          "mediaUpload": {
            "protocols": {
              "simple": {
                "multipart": true,
                "path": "/upload/v2/{+parent}/attachments"
              }
            },
            "accept": [
              "*/*"
            ]
          },
          "supportsMediaUpload": true,
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "request": {
            "$ref": "CreateAttachmentRequest"
          },
          "response": {
            "$ref": "Attachment"
          },
          "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/v2/$case/attachments?attachment.filename=uploaded_via_curl.txt\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "parameterOrder": [
            "parent"
          ],
          "parameters": {
            "parent": {
              "pattern": "^[^/]+/[^/]+/cases/[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The name of the case or Cloud resource to which the attachment should be attached.",
              "type": "string"
            }
          }
        },
        "download": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}:download",
          "flatPath": "v2/{v2Id}/{v2Id1}/cases/{casesId}/attachments/{attachmentsId}:download",
          "supportsMediaDownload": true,
          "id": "cloudsupport.media.download",
          "httpMethod": "GET",
          "parameters": {
            "name": {
              "pattern": "^[^/]+/[^/]+/cases/[^/]+/attachments/[^/]+$",
              "description": "The name of the file attachment to download.",
              "type": "string",
              "required": true,
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "useMediaDownloadService": true,
          "response": {
            "$ref": "Media"
          },
          "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/v2/$name:download?alt=media\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```"
        }
      }
    },
    "caseClassifications": {
      "methods": {
        "search": {
          "id": "cloudsupport.caseClassifications.search",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/caseClassifications:search",
          "flatPath": "v2/caseClassifications:search",
          "response": {
            "$ref": "SearchCaseClassificationsResponse"
          },
          "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/v2/caseClassifications:search?query=display_name:\"*Compute%20Engine*\"' ``` Python: ```python import googleapiclient.discovery supportApiService = googleapiclient.discovery.build( serviceName=\"cloudsupport\", version=\"v2\", discoveryServiceUrl=f\"https://cloudsupport.googleapis.com/$discovery/rest?version=v2\", ) request = supportApiService.caseClassifications().search( query='display_name:\"*Compute Engine*\"' ) print(request.execute()) ```",
          "parameters": {
            "pageSize": {
              "description": "The maximum number of classifications fetched with each request.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            },
            "query": {
              "location": "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.",
              "type": "string"
            },
            "pageToken": {
              "description": "A token identifying the page of results to return. If unspecified, the first page is retrieved.",
              "type": "string",
              "location": "query"
            }
          },
          "parameterOrder": []
        }
      }
    },
    "supportEventSubscriptions": {
      "methods": {
        "list": {
          "parameterOrder": [
            "parent"
          ],
          "parameters": {
            "showDeleted": {
              "description": "Optional. Whether to show deleted subscriptions. By default, deleted subscriptions are not returned.",
              "type": "boolean",
              "location": "query"
            },
            "pageSize": {
              "location": "query",
              "format": "int32",
              "description": "Optional. The maximum number of support event subscriptions to return.",
              "type": "integer"
            },
            "parent": {
              "description": "Required. The fully qualified name of the Cloud resource to list support event subscriptions under. Format: organizations/{organization_id}",
              "type": "string",
              "required": true,
              "location": "path",
              "pattern": "^[^/]+/[^/]+$"
            },
            "filter": {
              "location": "query",
              "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`",
              "type": "string"
            },
            "pageToken": {
              "location": "query",
              "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.",
              "type": "string"
            }
          },
          "response": {
            "$ref": "ListSupportEventSubscriptionsResponse"
          },
          "description": "Lists support event subscriptions. EXAMPLES: cURL: ```shell parent=\"organizations/123456789\" curl \\ --header \"Authorization: Bearer $(gcloud auth print-access-token)\" \\ \"https://cloudsupport.googleapis.com/v2/$parent/supportEventSubscriptions\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "path": "v2/{+parent}/supportEventSubscriptions",
          "flatPath": "v2/{v2Id}/{v2Id1}/supportEventSubscriptions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "id": "cloudsupport.supportEventSubscriptions.list",
          "httpMethod": "GET"
        },
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}",
          "flatPath": "v2/{v2Id}/{v2Id1}/supportEventSubscriptions/{supportEventSubscriptionsId}",
          "id": "cloudsupport.supportEventSubscriptions.patch",
          "httpMethod": "PATCH",
          "parameters": {
            "name": {
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$",
              "required": true,
              "location": "path",
              "description": "Identifier. The resource name of the support event subscription.",
              "type": "string"
            },
            "updateMask": {
              "location": "query",
              "format": "google-fieldmask",
              "description": "Optional. The list of fields to update. The only supported value is pub_sub_topic.",
              "type": "string"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "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/v2/$support_event_subscription?updateMask=pub_sub_topic\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "request": {
            "$ref": "SupportEventSubscription"
          }
        },
        "expunge": {
          "response": {
            "$ref": "Empty"
          },
          "description": "Expunges a support event subscription.",
          "request": {
            "$ref": "ExpungeSupportEventSubscriptionRequest"
          },
          "parameters": {
            "name": {
              "description": "Required. The name of the support event subscription to expunge. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "type": "string",
              "required": true,
              "location": "path",
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "id": "cloudsupport.supportEventSubscriptions.expunge",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}:expunge",
          "flatPath": "v2/{v2Id}/{v2Id1}/supportEventSubscriptions/{supportEventSubscriptionsId}:expunge"
        },
        "create": {
          "request": {
            "$ref": "SupportEventSubscription"
          },
          "response": {
            "$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/v2/$parent/supportEventSubscriptions\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "parameterOrder": [
            "parent"
          ],
          "parameters": {
            "parent": {
              "required": true,
              "location": "path",
              "description": "Required. The parent resource name where the support event subscription will be created. Format: organizations/{organization_id}",
              "type": "string",
              "pattern": "^[^/]+/[^/]+$"
            }
          },
          "id": "cloudsupport.supportEventSubscriptions.create",
          "httpMethod": "POST",
          "path": "v2/{+parent}/supportEventSubscriptions",
          "flatPath": "v2/{v2Id}/{v2Id1}/supportEventSubscriptions",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "delete": {
          "id": "cloudsupport.supportEventSubscriptions.delete",
          "httpMethod": "DELETE",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}",
          "flatPath": "v2/{v2Id}/{v2Id1}/supportEventSubscriptions/{supportEventSubscriptionsId}",
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "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/v2/$support_event_subscription\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```",
          "parameters": {
            "name": {
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$",
              "description": "Required. The name of the support event subscription to delete. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "type": "string",
              "required": true,
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ]
        },
        "undelete": {
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "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/v2/$support_event_subscription:undelete\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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.",
          "request": {
            "$ref": "UndeleteSupportEventSubscriptionRequest"
          },
          "parameters": {
            "name": {
              "description": "Required. The name of the support event subscription to undelete. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "id": "cloudsupport.supportEventSubscriptions.undelete",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}:undelete",
          "flatPath": "v2/{v2Id}/{v2Id1}/supportEventSubscriptions/{supportEventSubscriptionsId}:undelete"
        },
        "get": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "path": "v2/{+name}",
          "flatPath": "v2/{v2Id}/{v2Id1}/supportEventSubscriptions/{supportEventSubscriptionsId}",
          "id": "cloudsupport.supportEventSubscriptions.get",
          "httpMethod": "GET",
          "parameters": {
            "name": {
              "description": "Required. The name of the support event subscription to retrieve. Format: organizations/{organization_id}/supportEventSubscriptions/{subscription_id}",
              "type": "string",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+/[^/]+/supportEventSubscriptions/[^/]+$"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "response": {
            "$ref": "SupportEventSubscription"
          },
          "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/v2/$support_event_subscription\" ``` Python: ```python import googleapiclient.discovery api_version = \"v2\" 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()) ```"
        }
      }
    }
  },
  "schemas": {
    "ContentTypeInfo": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "id": "ContentTypeInfo",
      "properties": {
        "bestGuess": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fusionIdDetectionMetadata": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "fromFusionId": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fromBytes": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fromHeader": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fromFileName": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "fromUrlPath": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      }
    },
    "Media": {
      "properties": {
        "blobRef": {
          "deprecated": true,
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "diffChecksumsResponse": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DiffChecksumsResponse"
        },
        "sha1Hash": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "crc32cHash": {
          "format": "uint32",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "integer"
        },
        "filename": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "deprecated": true
        },
        "sha256Hash": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "mediaId": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "algorithm": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "deprecated": true
        },
        "diffDownloadResponse": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DiffDownloadResponse"
        },
        "diffUploadRequest": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DiffUploadRequest"
        },
        "downloadParameters": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DownloadParameters"
        },
        "isPotentialRetry": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        },
        "cosmoBinaryReference": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "token": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "contentType": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "sha512Hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "path": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "contentTypeInfo": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "ContentTypeInfo"
        },
        "bigstoreObjectRef": {
          "format": "byte",
          "deprecated": true,
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "inline": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "referenceType": {
          "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"
          ],
          "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"
          ]
        },
        "blobstore2Info": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "Blobstore2Info"
        },
        "diffVersionResponse": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DiffVersionResponse"
        },
        "compositeMedia": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "array",
          "items": {
            "$ref": "CompositeMedia"
          }
        },
        "diffUploadResponse": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "DiffUploadResponse"
        },
        "hashVerified": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        },
        "length": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "md5Hash": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "timestamp": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "uint64"
        },
        "objectId": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "ObjectId"
        }
      },
      "id": "Media",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object"
    },
    "ExpungeSupportEventSubscriptionRequest": {
      "properties": {},
      "id": "ExpungeSupportEventSubscriptionRequest",
      "description": "Request message for ExpungeSupportEventSubscription.",
      "type": "object"
    },
    "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",
      "id": "Actor",
      "properties": {
        "googleSupport": {
          "description": "Output only. Whether the actor is a Google support actor.",
          "type": "boolean",
          "readOnly": true
        },
        "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
        },
        "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"
        },
        "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.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "CompositeMedia": {
      "properties": {
        "length": {
          "format": "int64",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "inline": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "md5Hash": {
          "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"
        },
        "objectId": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "ObjectId"
        },
        "blobstore2Info": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "Blobstore2Info"
        },
        "referenceType": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "enum": [
            "PATH",
            "BLOB_REF",
            "INLINE",
            "BIGSTORE_REF",
            "COSMO_BINARY_REFERENCE"
          ],
          "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"
          ]
        },
        "sha1Hash": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "blobRef": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "deprecated": true,
          "format": "byte"
        },
        "path": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "crc32cHash": {
          "format": "uint32",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "integer"
        }
      },
      "id": "CompositeMedia",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object"
    },
    "DownloadParameters": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "allowGzipCompression": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        },
        "ignoreRange": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "boolean"
        }
      },
      "id": "DownloadParameters"
    },
    "EscalateCaseRequest": {
      "id": "EscalateCaseRequest",
      "properties": {
        "escalation": {
          "description": "The escalation information to be sent with the escalation request.",
          "$ref": "Escalation"
        }
      },
      "description": "The request message for the EscalateCase endpoint.",
      "type": "object"
    },
    "DiffUploadResponse": {
      "properties": {
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "originalObject": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        }
      },
      "id": "DiffUploadResponse",
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object"
    },
    "Escalation": {
      "description": "An escalation of a support case.",
      "type": "object",
      "id": "Escalation",
      "properties": {
        "reason": {
          "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"
          ],
          "description": "Required. The reason why the Case is being escalated.",
          "type": "string"
        },
        "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"
        }
      }
    },
    "Attachment": {
      "properties": {
        "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.",
          "$ref": "Actor",
          "readOnly": true
        },
        "sizeBytes": {
          "description": "Output only. The size of the attachment in bytes.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "name": {
          "description": "Output only. Identifier. The resource name of the attachment.",
          "type": "string",
          "readOnly": true
        },
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time at which the attachment was created.",
          "type": "string"
        },
        "filename": {
          "description": "The filename of the attachment (e.g. `\"graph.jpg\"`).",
          "type": "string"
        },
        "mimeType": {
          "readOnly": true,
          "description": "Output only. The MIME type of the attachment (e.g. text/plain).",
          "type": "string"
        }
      },
      "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"
    },
    "SearchCasesResponse": {
      "description": "The response message for the SearchCases endpoint.",
      "type": "object",
      "id": "SearchCasesResponse",
      "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"
        }
      }
    },
    "DiffDownloadResponse": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "id": "DiffDownloadResponse",
      "properties": {
        "objectLocation": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        }
      }
    },
    "UndeleteSupportEventSubscriptionRequest": {
      "description": "Request message for UndeleteSupportEventSubscription.",
      "type": "object",
      "id": "UndeleteSupportEventSubscriptionRequest",
      "properties": {}
    },
    "ListCommentsResponse": {
      "id": "ListCommentsResponse",
      "properties": {
        "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"
        },
        "comments": {
          "description": "List of the comments associated with the case.",
          "type": "array",
          "items": {
            "$ref": "Comment"
          }
        }
      },
      "description": "The response message for the ListComments endpoint.",
      "type": "object"
    },
    "CaseClassification": {
      "properties": {
        "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"
        }
      },
      "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"
    },
    "Blobstore2Info": {
      "id": "Blobstore2Info",
      "properties": {
        "readToken": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "blobId": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "uploadMetadataContainer": {
          "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"
        },
        "downloadReadHandle": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "byte"
        },
        "uploadFragmentListCreationInfo": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "downloadExternalReadToken": {
          "format": "byte",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        }
      },
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object"
    },
    "DiffUploadRequest": {
      "id": "DiffUploadRequest",
      "properties": {
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "objectInfo": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        },
        "checksumsInfo": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        }
      },
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object"
    },
    "SupportEventSubscription": {
      "description": "A support event subscription.",
      "type": "object",
      "id": "SupportEventSubscription",
      "properties": {
        "failureReason": {
          "enum": [
            "FAILURE_REASON_UNSPECIFIED",
            "PERMISSION_DENIED",
            "TOPIC_NOT_FOUND",
            "OTHER"
          ],
          "readOnly": true,
          "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."
          ],
          "description": "Output only. Reason why subscription is failing. State of subscription must be FAILING in order for this to have a value.",
          "type": "string"
        },
        "purgeTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time at which the subscription will be purged.",
          "type": "string"
        },
        "pubSubTopic": {
          "description": "Required. The name of the Pub/Sub topic to publish notifications to. Format: projects/{project}/topics/{topic}",
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of the subscription.",
          "type": "string",
          "readOnly": true,
          "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"
          ]
        },
        "updateTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time at which the subscription was last updated.",
          "type": "string"
        },
        "name": {
          "description": "Identifier. The resource name of the support event subscription.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The time at which the subscription was created.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "deleteTime": {
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The time at which the subscription was deleted.",
          "type": "string"
        }
      }
    },
    "CreateAttachmentRequest": {
      "description": "The request message for the CreateAttachment endpoint.",
      "type": "object",
      "id": "CreateAttachmentRequest",
      "properties": {
        "attachment": {
          "description": "Required. The attachment to be created.",
          "$ref": "Attachment"
        }
      }
    },
    "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": {
        "name": {
          "readOnly": true,
          "description": "Output only. Identifier. The resource name of the comment.",
          "type": "string"
        },
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time when the comment was created.",
          "type": "string"
        },
        "plainTextBody": {
          "readOnly": true,
          "deprecated": true,
          "description": "Output only. DEPRECATED. DO NOT USE. A duplicate of the `body` field. This field is only present for legacy reasons.",
          "type": "string"
        },
        "body": {
          "description": "The full comment body. Maximum of 12800 characters.",
          "type": "string"
        },
        "creator": {
          "description": "Output only. The user or Google Support agent who created the comment.",
          "readOnly": true,
          "$ref": "Actor"
        }
      },
      "id": "Comment"
    },
    "Case": {
      "id": "Case",
      "properties": {
        "priority": {
          "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."
          ],
          "enum": [
            "PRIORITY_UNSPECIFIED",
            "P0",
            "P1",
            "P2",
            "P3",
            "P4"
          ],
          "description": "The priority of this case.",
          "type": "string"
        },
        "testCase": {
          "description": "Whether this case was created for internal API testing and should not be acted on by the support team.",
          "type": "boolean"
        },
        "createTime": {
          "description": "Output only. The time this case was created.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "escalated": {
          "description": "Whether the case is currently escalated.",
          "type": "boolean"
        },
        "state": {
          "readOnly": true,
          "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.",
          "type": "string"
        },
        "updateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The time this case was last updated.",
          "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"
        },
        "creator": {
          "description": "The user who created the case. Note: The name and email will be obfuscated if the case was created by Google Support.",
          "$ref": "Actor"
        },
        "name": {
          "description": "Identifier. The resource name for the case.",
          "type": "string"
        },
        "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"
        },
        "displayName": {
          "description": "The short summary of the issue reported in this case.",
          "type": "string"
        },
        "subscriberEmailAddresses": {
          "description": "The email addresses to receive updates on this case.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "classification": {
          "description": "The issue classification applicable to this case.",
          "$ref": "CaseClassification"
        },
        "description": {
          "description": "A broad description of the issue.",
          "type": "string"
        },
        "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"
        }
      },
      "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"
    },
    "ListAttachmentsResponse": {
      "description": "The response message for the ListAttachments endpoint.",
      "type": "object",
      "id": "ListAttachmentsResponse",
      "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"
        }
      }
    },
    "CloseCaseRequest": {
      "properties": {},
      "id": "CloseCaseRequest",
      "description": "The request message for the CloseCase endpoint.",
      "type": "object"
    },
    "ObjectId": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "id": "ObjectId",
      "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"
        }
      }
    },
    "ListCasesResponse": {
      "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.list` requests. If unspecified, there are no more results to retrieve.",
          "type": "string"
        }
      },
      "id": "ListCasesResponse",
      "description": "The response message for the ListCases endpoint.",
      "type": "object"
    },
    "ListSupportEventSubscriptionsResponse": {
      "description": "Response message for ListSupportEventSubscriptions.",
      "type": "object",
      "id": "ListSupportEventSubscriptionsResponse",
      "properties": {
        "supportEventSubscriptions": {
          "description": "The support event subscriptions.",
          "type": "array",
          "items": {
            "$ref": "SupportEventSubscription"
          }
        },
        "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"
        }
      }
    },
    "DiffChecksumsResponse": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "properties": {
        "objectSizeBytes": {
          "format": "int64",
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "checksumsLocation": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        },
        "chunkSizeBytes": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        },
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "objectLocation": {
          "description": "# gdata.* are outside protos with mising documentation",
          "$ref": "CompositeMedia"
        }
      },
      "id": "DiffChecksumsResponse"
    },
    "Empty": {
      "id": "Empty",
      "properties": {},
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "type": "object"
    },
    "DiffVersionResponse": {
      "description": "# gdata.* are outside protos with mising documentation",
      "type": "object",
      "id": "DiffVersionResponse",
      "properties": {
        "objectVersion": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string"
        },
        "objectSizeBytes": {
          "description": "# gdata.* are outside protos with mising documentation",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "SearchCaseClassificationsResponse": {
      "properties": {
        "caseClassifications": {
          "description": "The classifications retrieved.",
          "type": "array",
          "items": {
            "$ref": "CaseClassification"
          }
        },
        "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"
        }
      },
      "id": "SearchCaseClassificationsResponse",
      "description": "The response message for SearchCaseClassifications endpoint.",
      "type": "object"
    }
  },
  "basePath": "",
  "id": "cloudsupport:v2",
  "fullyEncodeReservedExpansion": true,
  "documentationLink": "https://cloud.google.com/support/docs/apis",
  "discoveryVersion": "v1",
  "mtlsRootUrl": "https://cloudsupport.mtls.googleapis.com/",
  "description": "Manages Google Cloud technical support cases for Customer Care support offerings. ",
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "fields": {
      "location": "query",
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "callback": {
      "location": "query",
      "type": "string",
      "description": "JSONP"
    },
    "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"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "alt": {
      "location": "query",
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "enum": [
        "json",
        "media",
        "proto"
      ]
    },
    "upload_protocol": {
      "location": "query",
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "$.xgafv": {
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "type": "string",
      "description": "V1 error format.",
      "location": "query"
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "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"
    }
  },
  "rootUrl": "https://cloudsupport.googleapis.com/",
  "ownerDomain": "google.com",
  "protocol": "rest",
  "kind": "discovery#restDescription"
}
